Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 错误C2440:&x27;初始化';:无法从';CTable';至';CTable';_C++_Operator Overloading - Fatal编程技术网

C++ 错误C2440:&x27;初始化';:无法从';CTable';至';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不能转换成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_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的建议在您拥有“适当”的复制构造函数(将对常量对象的引用作为参数)之前不会起作用。