记住:类的定义和声明必须放在main函数前
void FunTest();
class Test //完整定义放在前面
{
public:
Test(){}
};
class Test;//只声明不定义
int main()
{
Test test; //需要类的完整定义
Test* ptest; //使用指针,可以只用class Test
}
void FunTest()
{
}
正如上例所示,如果
类中只有申明类而没有定义,则只能定义指针:Test *test;如果不定义类而仅仅声明类的话,当使用Test test时,编译器只知道Test是个class,但留多大空间?怎么初始化?都不知道,因此,在实例化一个对象之前,一定要看到类实体的声明,否则是无法构造一个真正的对象的。