我正在尝试写一段基本的操作符重载代码。然而,我得到了一些我无法解释的错误。
头文件:
class Overloading
{
public:
int number;
Overloading();
Overloading(int);
Overloading operator+(Overloading);
void vUselessoverloadFunction();
};C++代码:
Overloading::Overloading()
{}
Overloading::Overloading(int i)
{
number = i;
}
Overloading Overloading::operator+(Overloading Object2)
{
Overloading NewObject;
NewObject.number = number + Object2.number;
return (NewObject);
}
void Overloading::vUselessoverloadFunction() {
Overloading ObjectOne(15);
Overloading ObjectTwo(24);
Overloading ObjectThree();
ObjectThree = ObjectOne+ObjectTwo;
cout << ObjectOne.number << endl;
cout << ObjectTwo.number << endl;
cout << "Overloaded object value: " << ObjectThree.number << endl;
}我收到以下错误:
在线ObjectThree = ObjectOne+ObjectTwo;
函数‘-Assignment ObjectThree()’的重载
-Cannot在赋值中将'Overloading‘转换为'Overloading()’
和在线cout << "Overloaded object value: " << ObjectThree.number << endl;上
'ObjectThree‘中成员’-Request‘的重载,它是非类类型'Overloading()’。
任何帮助都将不胜感激!
发布于 2016-11-22 21:21:32
Overloading ObjectThree();是一个函数原型。
它没有声明变量ObjectThree。所以你的编译器会输出一个错误,尽管这是一个相当混乱的错误。
这是一个相当常见的错误:谷歌的“最烦人的解析”。
https://stackoverflow.com/questions/40742922
复制相似问题