一个C++基础问题!!请赐教
来源:百度知道 编辑:UC知道 时间:2024/05/17 08:24:22
问题其实非常简单,让代码说话。
#include "StdAfx.h"
class apc;
class sper_apc
{
int spuer;
apc aa;
sper_apc(){spuer=3333;}
};
class apc
{
public:
int poo;
void xxx(void){poo=111;}
};
这样的话,会提示error C2079: 'aa' uses undefined class 'apc',但是如果把这一句(apc aa;)改为apc *aa;就能通过了.
请问这是怎么回事??非常不理解。apc类定义在后,但是我已经在用之前作出声明了啊。
#include "StdAfx.h"
class apc;
class sper_apc
{
int spuer;
apc aa;
sper_apc(){spuer=3333;}
};
class apc
{
public:
int poo;
void xxx(void){poo=111;}
};
这样的话,会提示error C2079: 'aa' uses undefined class 'apc',但是如果把这一句(apc aa;)改为apc *aa;就能通过了.
请问这是怎么回事??非常不理解。apc类定义在后,但是我已经在用之前作出声明了啊。
#include "StdAfx.h"
class apc
{
public:
int poo;
void xxx(void){poo=111;}
};
class sper_apc
{
int spuer;
apc aa;
sper_apc(){spuer=3333;}
};
改成这样就好用了
apc aa;创建对象分配给对象内存空间
你那样写,系统不知道需要分配的空间大小,无法分配空间
改成 apc *aa后,只是定义了一个apc类型的指针
#include "StdAfx.h"
//class apc; 这里不是定义,注:与函数的区别
class apc
{
public:
int poo;
void xxx(void){poo=111;}
};
class sper_apc
{
int spuer;
apc aa; //由于使用类apc,所以类apc的定义要放在前面
sper_apc(){spuer=3333;}
};
void main()
{
}