您好我从下面的代码中收到此错误:
Error 4 error LNK2019: unresolved external symbol "public: __thiscall Noun::Noun(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (??0Noun@@QAE@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0@Z) referenced in function "public: __thiscall Dictionary::Dictionary(void)" (??0Dictionary@@QAE@XZ)
我想这个错误来自于没有声明构造函数Noun(string word, string definition);
我也不确定如何声明这个以删除错误以便我可以编译我的代码。以下是我的代码。
答案 0 :(得分:2)
链接器抱怨您没有为Noun
的构造函数添加定义。添加它,这个错误将被修复。我相信你只是打算把父母的构造函数调用它,所以也许这样就可以了:
Noun(string word, string definition) : Word(word, definition) {}
答案 1 :(得分:0)
您可以定义构造函数
Noun(string word, string definition)
与使用类Word
的构造函数完成相同的方式。
但是你需要确保在使用它时知道名词的定义。 Normaly,为此使用单独的头文件。类Noun
的头文件的内容已经包含在您提供的代码中:它以
class Noun : public virtual Word {
以
结束};
将其移动到名为noun.h的头文件中,并通过
将其包含在cpp文件中#include "noun.h"