从C ++中的Class构造函数调用头文件中定义的函数

时间:2012-08-23 05:55:27

标签: c++ header lnk2019

我有一个头文件,让我们用函数的定义称它为header1.h,让我们在其中说myFunc()。我的C ++项目有一个源文件,我们称之为main.cpp和头文件main.h。我在header1.h中添加了main.h,然后在main.h中添加了main.cpp

main.cpp我有一个类构造函数,我们称之为MyClass,我有这个代码:

MyClass:MyClass(...)
.
.
{
  .
  .
  f = myFunc(...);
  .
}

当我编译代码时,我收到此错误:

error LNK2019: unresolved external symbol _myFunc referenced in function  

出现此错误的原因是什么?

3 个答案:

答案 0 :(得分:1)

这是链接器错误。包含myFunc定义的文件未编译,或者您没有链接到导出它的库。

答案 1 :(得分:1)

您是否有myFunc的实施?您是否只在标题中声明了 myFunc()并且没有定义它?

您可以通过定义您的功能来解决此问题。

void myFunc(); // Declaration
void myFunc() {} // Definition

导致此错误的原因是myFunc符号没有定义,因此链接器无法解析

答案 2 :(得分:1)

您可能错过了向您的链接器提供带有myFunc的库/目标文件。