c++ - 在链接之前声明一个要使用的类成员函数

标签 c++ compilation linker

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

我正在尝试通过

转发声明类

class foo;
int foo::getValue();

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

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

错误:“struct foo”的前向声明

我在这里错过了什么?

谢谢,

最佳答案

您不能转发声明类成员,您需要包含整个 header 。

这里正确的做法是减小头部的大小。如果它只包含类定义,请保持原样。如果不是,则有可能将其分解为多个 header 。

如果类定义很大,则表明您的设计存在缺陷并且可能会被破坏。

关于c++ - 在链接之前声明一个要使用的类成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10654434/

相关文章:

C++——返回模板类型 vector 的函数

c++ - std::set.insert 不会与自定义类一起编译

c - Ubuntu 和 CentOS 之间链接行为的差异

c - 查询 gcc 的 -ffunction-section & -fdata-sections 选项

c++ - 不可用的公共(public)变量

C++11 'native_handle' 不是 'std::this_thread' 的成员

C++ 程序仅在安装 Visual Studio 后才能在 XP SP2 上运行

在 Mac 终端中编译并运行 Sublime Text 文件

c++ - 实际上,为什么不同的编译器会计算不同的 int x =++i+++i; 值?

c++ - g++ 的链接器错误