这样写为什么是错误的?已经提前声明了mygoods,但是为什么还是会报错未定义,把mygoods修改到goodgay之前定义,就不会有问题
编译错误提示:
```c++
invalid use of incomplete type 'class mygoods'
invalid use of incomplete type 'class mygoods'
invalid use of incomplete type 'class mygoods'
程序代码如下:
#include <iostream>
using namespace std;
#include <string>
class mygoods;
class goodgay
{
public:
goodgay()
{
goods = new mygoods;
}
void usegoods()
{
cout<<"use public:"<<goods->gs1<<endl;
cout<<"use public:"<<goods->gs2<<endl;
}
mygoods *goods;
};
class mygoods
{
friend class goodgay;
public:
mygoods()
{
gs1 = "抽纸";
gs2 = "水杯";
}
string gs1;
private:
string gs2;
};
void test01(void)
{
goodgay gay1;
gay1.usegoods();
}
int main(void)
{
cout<<"hello world"<<endl;
test01();
system("pause");
return 0;
}
```