rav*_*avi 0 c++ linker compilation
我想使用一个存在于其他模块中的类,并且可以在链接中使用.头文件的大小很大,所以我不想在当前模块中包含头文件.
我试图转发声明类
foo;
int foo :: getValue();
这里getValue()是我想要使用的foo的成员函数.
现在当我编译我的代码时,我在链接之前得到了编译错误
error: forward declaration of 'struct foo'
我在这里错过了什么?
谢谢,
您无法转发声明类成员,您需要包含整个标头.
这里正确的方法是减小标题的大小.如果它只包含类定义,请保持原样.如果没有,则有可能将其分解为多个标题.
如果类定义很大,那么这表明你的设计有缺陷并且可能被分解.