重载operator+时,返回值的类型应当与形参类型一致。 比如以下程序中,operator+的返回值类型有错: class A { int x; public: A(int t=0):x(t){ } int operator+(const A& a1){ return x+a1.x; } };
时间: 2023-06-10 22:03:48 浏览: 178
通过string转换比较好些,很多重载函数要么是char * ,要么是String
& a){ return x+a.x; } }; 上述程序中,operator 的返回值类型应该是 A 而不是 int。这是因为 operator 的返回值类型应该与类自身的类型一致,而 A 类型和 int 类型是不同的。所以,修正后的程序应该是: class A { int x; public: A(int t=0):x(t){ } A operator +(const A& a){ return A(x+a.x); } };
阅读全文