提问人:Rehan Akhtar 提问时间:12/18/2022 最后编辑:Some programmer dudeRehan Akhtar 更新时间:12/18/2022 访问量:63
我面临LNK2019错误 u已解决的外部错误 [重复]
i am facing LNK2019 error uresolved external error [duplicate]
问:
我正在使用霍夫曼算法创建文本压缩。 这里我想创建一个霍夫曼树,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);
}
答:
0赞
Some programmer dude
12/18/2022
#1
错误消息中提到的是默认构造函数。HMnode::HMnode(void)
HMnode
执行此操作时,默认构造一个对象,并且它需要默认构造函数。new HMnode
HMnode
如果由于某种原因,您没有默认构造函数,则会出现有关它的错误。通常,您会收到编译器(不是链接)错误,这意味着有默认构造函数的声明,但没有定义(实现)。HMnode
要么没有链接所有对象文件或库,要么忘记在代码中定义(实现)默认构造函数。
评论
0赞
Rehan Akhtar
12/18/2022
非常感谢它解决了.错误在默认构造函数 {} 中丢失,这就是出现此错误的原因,谢谢
0赞
Some programmer dude
12/18/2022
@RehanAkhtar 如果你的默认构造函数中没有任何代码或其他特定的初始化,请将其标记为“默认”,比如 然后编译器将为您创建一个合适的构造函数。HMnode() = default;
评论