JILAU_WHO_AM_I_Q234
JILAU_WHO_AM_I_Q234
2021-01-09 16:36
采纳率: 84.6%
浏览 130

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

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

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

下面是图片

先是complex类的

没有问题,也能运行

下面是我的Array类,

下面是报错信息

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

求da'lao'zhi'jiao

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • huanhuilong
    幻灰龙 2021-01-14 10:23
    已采纳

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

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

    namespace ARRAY{
    
     ...
    
    }
    
    
    点赞 评论

相关推荐