这是一个了解如何friend class
在 C++ 中使用的基本程序。
类xxx
有一个yyy
使用friend
. 由于类yyy
是在类之后定义的,xxx
因此我yyy
使用前向声明声明了类。
#include<iostream>
using std::cout;
using std::endl;
class yyy; //Forward Declaration of class yyy
class xxx{
private:
int a;
public:
xxx(){a=20;yyy y2;y2.show();} //Error//
void show(){cout<<"a="<<a<<endl;}
friend class yyy; //Making class yyy as freind of class xxx
};
class yyy{
private:
int b;
public:
yyy(){b=10;}
void show(){cout<<"b="<<b<<endl;}
};
int main(int argc, char *argv[])
{
xxx x1; //creating xxx object and calling constructor
x1.show();
return 0;
}
当我编译程序时,我得到这个错误:
错误:聚合 'yyy y2' 类型不完整,无法定义
我提到了这个链接 递归朋友类 ,有人这样回答 https://stackoverflow.com/a/6158833/2168706
我正在遵循这种方法,但我仍然无法解决问题。如果存在任何解决方案,请提供解决方案,如果我在代码中的任何地方出错,请告诉我。