a昊a 2021-01-09 16:36 采纳率: 66.7%
浏览 566
已采纳

C++友元函数不能访问私有变量问题

刚刚学习c++的友元函数以及运算符的重载,按照c++primerplus写了complex复数类,通过友元函数重载了<<运算符没问题,但是

我自己在写Array类时重载<<却报错了,友元函数不能访问类的私有数据了。不知道为啥,求大佬指教,萌新虚心学习

下面是图片

先是complex类的

没有问题,也能运行

下面是我的Array类,

下面是报错信息

就不能访问私有变量length和指针p

求da'lao'zhi'jiao

  • 写回答

1条回答 默认 最新

  • 幻灰龙 2021-01-14 10:23
    关注

    这是因为你加了名称空间,相当于加了作用域。Array成员函数的实现,以及友元函数的实现,同样需要放在Array类所在的名称空间内。

    把rnyarray.cpp里的实现代码放在名称空间内即可:
     

    namespace ARRAY{
    
     ...
    
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥15 DruidDataSource一直closing
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据
  • ¥15 (关键词-阻抗匹配,HFSS,RFID标签)
  • ¥50 sft下载大文阻塞卡死
  • ¥15 机器人轨迹规划相关问题