1

我正在使用 Dev-C++ 5.2.0.1

我举了一个例子,说明如何将一个类放在网站的另一个文件中,但它导致了一个错误。

在文件 class.h 我有:

class MyClass
{
public:
  void foo();
  int bar;
};

在文件 class.cpp 我有:

#include "class.h"

void MyClass::foo()
{
    cout<< "test";
}

在文件 main.cpp 我有:

#include "class.h" 
using namespace std;
int main()
{
  MyClass a;
  a.foo();
  return 0;
}

这是我得到的错误:[链接器错误] C:\Users\Matthew\AppData\Local\Temp\cccWe7ee.o:main.cpp:(.text+0x16): undefined reference to `MyClass::foo()' collect2: ld 返回 1 个退出状态

有什么我做错了吗?

4

2 回答 2

2

新答案。

您是否正在编译和链接所有文件?在 gcc 中,您会执行以下操作:

gcc -o myExe class.cpp main.cpp

我不太确定 dev-c++,但我想它并没有太大的不同。

于 2013-10-23T05:14:20.067 回答
1

foo() 只有定义。如果你想使用一个没有实现的函数,链接器会给你这个错误“未定义的引用”。

于 2013-10-23T05:25:31.423 回答