在头文件中,使用
class xxx;
来声明某个类,这种方式经常被使用C++的我们使用,因为,看起来比包含一堆的头文件好看,而且头文件也可能发生重复包含的问题。这种方式适用于只产生该类的指针声明的地方,因为对编译器来说,是指针,就是个long。因此不需要关注到类的内部。
这种方式有时候会给我们造成一定的困扰,在编译CPP文件时,如果适用new xxx或者new xxx()这样的方式,编译器可能会告知无法找到合适的构造函数,即使你的类中已经有了相应的构造函数。
问题的原因恰恰是我们在适用到该类的头文件中适用了class xxx的声明,而不是包含头文件。new xxx的时候,编译器是需要全部的细节的。所以请包含头文件进来,即能解决该问题。