作者:Cockroach小小强 | 来源:互联网 | 2023-10-16 17:19
有一个类声明的错误,特记录。
类声明
类声明这东西很奇怪,而且没包含其头文件,居然也可以用,下面关于超前引用的文章说是用来解决超前引用的一个办法。
-------A.h---------
class B;
class A
{
B b;
//其它代码
}
------A.cpp-------
B b; //这里会报错,提示说B示定义
//因为这里没有加#include B.h
=============
其实当时的情况比这复杂,所以错误比较难找。
B是一个基类,有虚函数draw(),在A.h中有类声明
C继承于B,重载了虚函数draw(),在A.h中有类声明
-------A.h---------
class B;
class C;
class A
{
C *m_c;
//其它代码
}
------A.cpp----------
#include A.h
#include C.h
//但没包含B.h
m_c->draw();//这里一直提示没定义,然后以为是虚函数的问题,其实不是,包含B.h后才解决。
超前引用
http://www.vckbase.com/bbs/prime/viewprime.asp?id=431