C++的成员函数友元的问题

C++的成员函数友元的问题

问题描述:

假如我声明了两个类,第二个声明的类中的成员函数作为第一个类的友元函数,这时候出现的编译错误该怎么解决

无代码无真相,上点代码

亲,问一下你的编译器是不是vs2012。如果是的话那就是编译器的问题,解决办法是直接将这个类声明为友元函数,还可以用其他编译器codeblocks等,或者用vs2015版

可在第一个类A中声明第二个类B为友元;或者在
第一个类A中声明第二个类B的static成员函数为友元;如果你在第一个类A中声明第二个类B的非static成员函数为友元,应该就会出现编译问题。

在第一个类A中声明第二个类B的非static成员函数为友元也是可以的。编译出错,有可能是写法上需的问题:1.作为友元的成员函数的定义或实现代码最好不要写在类内部;2.是否需要类的前向申明;3.参考一下网上的例子的写法。

我觉得,可能是你在使用第一个类创建对象,而类的定义在第二个类的后面。造成了代码运行到创建对象找不到第二个类的构造函数