关于友元成员函数为什么不能相互为友元函数的问题?
#include <iostream>
using namespace std;
/*class fff;*/
class abc
{
public:
friend class fff;
/* friend void fff::fortuneffff();*/ //这句不可行
void fortune();
private:
int m;
};
class fff
{
public:
void fortuneffff();
private:
int x;
friend void abc::fortune();
};
void abc::fortune()
{
fff m1;
m1.x=888;
cout<<m1.x<<endl;
}
void fff::fortuneffff()
{
abc c;
c.m=1222;
cout<<c.m<<endl;
}
int main()
{
abc l;
l.fortune();
fff ll;
ll.fortuneffff();
return 0;
}
代码可能有点凌乱,我大致说一下,方便阅读。两个类,一个是abc,一个是fff. abc中的成员函数作为友元在fff中使用没有问题。
现在问题是,fff中的函数作为友元函数在abc使用出错,除非把友元函数修改成为友元类才ok.
friend void fff::fortuneffff(); 这句话可行吗?有什么解决的方法?