C++ 错误C2440:&x27;初始化';:无法从';CTable';至';CTable';
老实说,我不知道为什么CTable不能转换成CTable?我试图使重载运算符+返回连接的两个表 错误C2440“初始化”:无法从“CTable”转换为“CTable” 第二个错误:错误(活动)E0334类“CTable”没有合适的复制构造函数C++ 错误C2440:&x27;初始化';:无法从';CTable';至';CTable';,c++,operator-overloading,C++,Operator Overloading,老实说,我不知道为什么CTable不能转换成CTable?我试图使重载运算符+返回连接的两个表 错误C2440“初始化”:无法从“CTable”转换为“CTable” 第二个错误:错误(活动)E0334类“CTable”没有合适的复制构造函数 #包括 #包括 #包括“CTable.h” int main(){ CTable c_tab_1,c_tab_0; c_tab_0.vSetValueAt(0,1); c_tab_0.vPrint(); c_tab_0.bSetNewSize(4); c_
#包括
#包括
#包括“CTable.h”
int main(){
CTable c_tab_1,c_tab_0;
c_tab_0.vSetValueAt(0,1);
c_tab_0.vPrint();
c_tab_0.bSetNewSize(4);
c_tab_0.vPrint();
c_tab_1.bSetNewSize(4);
c_tab_0.vSetValueAt(0,1);
c_tab_0.vSetValueAt(1,2);
c_tab_0.vSetValueAt(2,3);
c_tab_0.vSetValueAt(3,4);
c_tab_0.vPrint();
c_tab_1.vSetValueAt(0,2);
c_tab_1.vSetValueAt(1,3);
c_tab_1.vSetValueAt(2,4);
c_tab_1.vSetValueAt(3,5);
c_tab_1.vPrint();
c_tab_1.vSetValueAt(2123);
c_tab_0.vPrint();
c_tab_1.vPrint();
CTable c_tab_3=c_tab_0+c_tab_1;//错误C2440!尝试定义
CTable(const CTable& pcOther)
{
.......
}
也许可以试试CTable c_tab_3(c_tab_0+c_tab_1);
因为没有赋值操作符(operator=
),所以+
操作符的临时结果不能直接赋值到c_tab_3
。添加移动构造函数会很好,因为你没有“正确的”操作符复制构造函数,因此@Erlkoenig的建议在您拥有“适当”的复制构造函数(将对常量对象的引用作为参数)之前不会起作用。