请教高手:两个类相互引用,无法编译。(VS 2003 .net VC++7)
icbm 2007-02-12 12:24:06 class A;
class B
{
public:
A * a;
void set(A * p){a = p};
void func1()
{
a->func2();
}
void func2()
{
}
};
class A
{
public:
B * b;
void set(B * p){b = p};
void func1()
{
b->func2();
}
void func2()
{
}
};
int main()
{
A a;
B b;
a.set(&b);
a.func1();
return 0;
}
正在编译...
Test1.cpp
g:\opengl游戏程序设计\source\chapter21\test1\test1.cpp(60) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
g:\opengl游戏程序设计\source\chapter21\test1\test1.cpp(63) : error C2027: 使用了未定义类型“A”
g:\opengl游戏程序设计\source\chapter21\test1\test1.cpp(54) : 参见“A”的声明
g:\opengl游戏程序设计\source\chapter21\test1\test1.cpp(63) : error C2227: “->func2”的左侧必须指向类/结构/联合
生成日志保存在“file://g:\OpenGL游戏程序设计\Source\chapter21\Test1\Debug\BuildLog.htm”中
Test1 - 3 错误,0 警告
不管把哪个类放在前面,都会报错。请教高手,不要改变上述类的功能,使程序编译通过。