【问题标题】:C++ Operator overloading errors [duplicate]C ++运算符重载错误[重复]
【发布时间】:2016-11-22 13:18:45
【问题描述】:

我正在尝试编写一个基本的运算符重载代码。但是,我遇到了一些我无法解释的错误。

头文件:

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;:
-函数'重载ObjectThree()'的赋值
-不能在赋值中将“Overloading”转换为“Overloading()”
和在线cout &lt;&lt; "Overloaded object value: " &lt;&lt; ObjectThree.number &lt;&lt; endl;
- 请求'ObjectThree' 中的成员'number',它是非类类型'Overloading()'。

任何帮助将不胜感激!

【问题讨论】:

  • 最麻烦的解析

标签: c++ overloading operator-keyword


【解决方案1】:

Overloading ObjectThree(); 是一个函数原型

它确实声明了一个变量ObjectThree。所以你的编译器会输出一个错误,尽管是一个相当混乱的错误。

这是一个很常见的错误:Google for "most vexing parse"。

【讨论】:

    猜你喜欢
    • 2015-07-04
    • 1970-01-01
    • 2011-10-27
    • 1970-01-01
    • 2012-12-22
    • 2016-09-26
    • 2012-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多