首先,请原谅我对C++的不了解.我是一个真正的初学者!
我想在MS VS2005上编译一个C++代码.下面的代码我得到如下链接器错误: -
在一个函数(某个类方法)定义中,它具有用于内存分配的代码,如:
CDecoderUnit *du = new CDecoderUnit(); //<<error is shown at this line
Run Code Online (Sandbox Code Playgroud)
这个CDecoderUnit是一个在头文件中定义的类
class CDecoderUnit : public IPrepareDecoderUnit
{
CDecoderUnit();
~CDecoderUnit();
...
...
other class definition.
..
..
}
Run Code Online (Sandbox Code Playgroud)
实际错误是: -
错误LNK2019:未解析的外部符号"public:__thiscall CDecoderUnit :: CDecoderUnit(void)"(?? 0CDecoderUnit @@ QAE @ XZ)在函数"private:long __thiscall CLSDEnc :: CreateIPrepareDecoderUnit(struct IPrepareDecoderUnit*&)const"中引用(? CreateIPrepareDecoderUnit @ CLSDEnc @@ ABEJAAPAUIPrepareDecoderUnit @@@ Z)lsdenc.obj
谁能指点我解决这个问题?
当你写作时,CDecoderUnit();
你正在做两件事:
如果需要初始化任何东西,你需要定义构造函数,或者删除允许编译器自己生成一个的声明.请注意,如果您确实实现了构造函数,那么如果要从类外部创建对象,则必须将其公之于众.
归档时间: |
|
查看次数: |
659 次 |
最近记录: |