一个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
{
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()
{

}

这里有个类似的问题http://zhidao.baidu.com/question/71689515.html