原因:某个类型在某个成员函数被某个指向这个类型的指针调用时,还没有被完整的定义。
原因:(1)定义顺序不合理。编译器遇到指针时,知道其被初始化时,才会为其分配内存。所以,如果不需要调用某个类型的成员函数,理论上讲,如果正确地声明了类型,定义的顺序是任意的。调用一定要在完整的定义以后。
(2)定义的头文件没有被(cxx)文件包含。
例子:以下代买有误。
class Car;
class Apple;
class Apple{
Car aCar;
}
};
class Car{
Apple anApple;
};
int main(){
return 0;
}