刚刚学习c++的友元函数以及运算符的重载,按照c++primerplus写了complex复数类,通过友元函数重载了<<运算符没问题,但是
我自己在写Array类时重载<<却报错了,友元函数不能访问类的私有数据了。不知道为啥,求大佬指教,萌新虚心学习
下面是图片
先是complex类的
没有问题,也能运行
下面是我的Array类,
下面是报错信息
就不能访问私有变量length和指针p
求da'lao'zhi'jiao
刚刚学习c++的友元函数以及运算符的重载,按照c++primerplus写了complex复数类,通过友元函数重载了<<运算符没问题,但是
我自己在写Array类时重载<<却报错了,友元函数不能访问类的私有数据了。不知道为啥,求大佬指教,萌新虚心学习
下面是图片
先是complex类的
没有问题,也能运行
下面是我的Array类,
下面是报错信息
就不能访问私有变量length和指针p
求da'lao'zhi'jiao
这是因为你加了名称空间,相当于加了作用域。Array成员函数的实现,以及友元函数的实现,同样需要放在Array类所在的名称空间内。
把rnyarray.cpp里的实现代码放在名称空间内即可:
namespace ARRAY{
...
}