似乎没有调用重载的复制构造函数

时间:2016-08-05 21:33:24

标签: c++ operator-overloading

我对C ++很陌生,我试图为我的HashingTable类重载复制构造函数。我搜索并搜索了几个小时,但似乎无法弄清楚为什么没有被调用。我正在使用MVS 2015.相关代码:

HashingTable<char*>* table2(myHashTable);

在main()

<g:price><![CDATA[ 90 DKK ]]></g:price>

&#34;复制构造函数的输出名为&#34;或&#34;在运营商= ...&#34;从未见过。

1 个答案:

答案 0 :(得分:2)

myHashTable的类型为HashingTable<char*>*。这里重要的是它是一个指针,而不是一个对象。

table2 一个HashingTable<char*>*,所以当你执行HashingTable<char*>* table2(myHashTable);时,正在复制指针值,实际 HashingTable的复制构造函数从不调用。

您必须复制HashingTable 对象才能调用您声明的构造函数,即

HashingTable<char*> notAPointerHashTable(*myHashTable);