我面临LNK2019错误 u已解决的外部错误 [重复]

i am facing LNK2019 error uresolved external error [duplicate]

提问人:Rehan Akhtar 提问时间:12/18/2022 最后编辑:Some programmer dudeRehan Akhtar 更新时间:12/18/2022 访问量:63

问:

我正在使用霍夫曼算法创建文本压缩。 这里我想创建一个霍夫曼树,CreateHMNode接受两个节点并创建一个频率与其他节点频率之和的节点。

但是它显示这个错误,请帮我解决

LNK2019未解析的外部符号“public: __cdecl HMnode::HMnode(void)” (??0HMnode@@QEAA@XZ) 在函数“public: void __cdecl HMtree::build_tree(class HMnode *,class HMnode *)”(?build_tree@HMtree@@QEAAXPEAVHMnode@@0@Z) 中引用

void  build_tree(HMnode* temp3, HMnode* temp13)
{

    HMnode* head1;

    HMnode* newnode = new HMnode;
    newnode = createHMNode(temp3, temp13);
    head1 = newnode;
    HMnode* mytemp = calldeque();
    createHMNode(newnode, mytemp);

}
C++ 语言:LNK2019

评论


答:

0赞 Some programmer dude 12/18/2022 #1

错误消息中提到的是默认构造函数。HMnode::HMnode(void)HMnode

执行此操作时,默认构造一个对象,并且它需要默认构造函数。new HMnodeHMnode

如果由于某种原因,您没有默认构造函数,则会出现有关它的错误。通常,您会收到编译器(不是链接)错误,这意味着有默认构造函数的声明,但没有定义(实现)。HMnode

要么没有链接所有对象文件或库,要么忘记在代码中定义(实现)默认构造函数。

评论

0赞 Rehan Akhtar 12/18/2022
非常感谢它解决了.错误在默认构造函数 {} 中丢失,这就是出现此错误的原因,谢谢
0赞 Some programmer dude 12/18/2022
@RehanAkhtar 如果你的默认构造函数中没有任何代码或其他特定的初始化,请将其标记为“默认”,比如 然后编译器将为您创建一个合适的构造函数。HMnode() = default;