我对C ++很陌生,我试图为我的HashingTable类重载复制构造函数。我搜索并搜索了几个小时,但似乎无法弄清楚为什么没有被调用。我正在使用MVS 2015.相关代码:
HashingTable<char*>* table2(myHashTable);
在main()
中<g:price><![CDATA[ 90 DKK ]]></g:price>
&#34;复制构造函数的输出名为&#34;或&#34;在运营商= ...&#34;从未见过。
答案 0 :(得分:2)
myHashTable
的类型为HashingTable<char*>*
。这里重要的是它是一个指针,而不是一个对象。
table2
也一个HashingTable<char*>*
,所以当你执行HashingTable<char*>* table2(myHashTable);
时,正在复制指针值,实际 HashingTable
的复制构造函数从不调用。
您必须复制HashingTable
对象才能调用您声明的构造函数,即
HashingTable<char*> notAPointerHashTable(*myHashTable);