我正在做一个项目,我过去使用过 Xcode,最近它一直“不正常”(可能是我)。以下代码是本题的测试代码(不是我的项目)。
(假设所有词法/预处理/命名空间指令都在那里。)
在 Foo.hpp 中
class Foo {
public:
Foo();
};
Foo::Foo() {
cout << "constructive" << endl;
}
现在,如果我运行构造 Foo 对象的 main,它会给出重复符号的链接器错误。我应该如何解决这个问题?
最佳答案
快速而肮脏的解决方法是写
内联 Foo::Foo(){
或者在类定义中完整定义函数:
public:
Foo(){cout << "constructive" << endl;}
更好的解决方法是确保构造函数定义只在一个翻译单元中编译;即把它放在源文件中。
关于c++ - 为什么我不能在同一个文件中定义已经前向声明的成员函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40338648/