首先,对不起我对C++的了解。我是一个真正的初学者!

我正在尝试在MS VS2005上编译一个C++代码。我收到以下代码段的链接器错误:-

在一个函数(某些类方法)的定义中,它具有用于内存分配的代码,例如:

CDecoderUnit *du = new CDecoderUnit(); //<<error is shown at this line

这个CDecoderUnit是一个在头文件中定义的类,例如
class CDecoderUnit : public IPrepareDecoderUnit
{
   CDecoderUnit();
   ~CDecoderUnit();
...
...
other class definition.

..
..
}

实际错误是:



谁能指出我要解决的问题?

最佳答案

当您编写CDecoderUnit();时,您正在做两件事:

  • 声明一个默认的构造函数(不实现它,只声明它)。
  • 使编译器不自行生成默认构造函数。

  • 如果需要初始化任何东西,则需要定义构造函数,或者删除使编译器自己生成的声明。请注意,如果要实现构造函数,则要从类外部创建对象,必须将其公开。

    关于c++ - 编译C++代码时出现链接器错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1136527/

    10-12 05:46