在链接之前声明要使用的类成员函数

rav*_*avi 0 c++ linker compilation

我想使用一个存在于其他模块中的类,并且可以在链接中使用.头文件的大小很大,所以我不想在当前模块中包含头文件.

我试图转发声明类

foo;
int foo :: getValue();

这里getValue()是我想要使用的foo的成员函数.

现在当我编译我的代码时,我在链接之前得到了编译错误

error: forward declaration of 'struct foo'

我在这里错过了什么?

谢谢,

Luc*_*ore 5

您无法转发声明类成员,您需要包含整个标头.

这里正确的方法是减小标题的大小.如果它只包含类定义,请保持原样.如果没有,则有可能将其分解为多个标题.

如果类定义很大,那么这表明你的设计有缺陷并且可能被分解.