2016-11-22 87 views
1

我想寫的操作符重載代碼基本塊。但是,我收到了一些我無法解釋的錯誤。

頭文件:C++運算符重載錯誤

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()'
- 無法轉換在分配
和在線cout << "Overloaded object value: " << ObjectThree.number << endl;「超載」到「重載()」- 在'ObjectThree'中請求成員'number',它是非類類型'Overloading()'。

任何幫助將不勝感激!

+0

一個最棘手的解析 – doctorlove

回答

3

Overloading ObjectThree();函數原型

它確實不是聲明變量ObjectThree。所以你的編譯器輸出一個錯誤,雖然是一個相當混亂的錯誤。

這是一個相當常見的錯誤:谷歌爲「最傷腦筋的解析」。