#include <iostream>
#include<conio.h>
using namespace std;
class Distance {
private:
int feet; // 0 to infinite
int inches; // 0 to 12
public:
// required constructors
Distance(){
feet = 0;
inches = 0;
}
Distance(int f, int i){
feet = f;
inches = i;
}
// method to display distance
void displayDistance() {
cout << "F: " << feet << " I:" << inches <<endl;
}
// overloaded minus (-) operator
Distance operator-() {
feet = -feet;
inches = -inches;
// return Distance(feet, inches);
}
};
int main() {
Distance D1(11, 10), D2(-5, 11);
-D1; // apply negation
D1.displayDistance(); // display D1
-D2; // apply negation
D2.displayDistance(); // display D2
return 0;
}
我是初學C++重載運算符函數的學習者。此代碼實際上工作正常,但在一步我有點困惑// return Distance(feet, inches);
我已經在程序中發表了這個聲明作爲評論,但仍然輸出是真實的。但如果我運行程序而不使它評論該程序也可以正常工作,而不是在這個語句使用的目的是什麼?其次,構造函數是否返回值?第三,它是如何返回值我的意思是它不是一個變量我總是聽說我們可以從變量返回值?- 在C++中減一元運算符重載
'-D1.displayDistance()'顯示什麼? – danielunderwood
它是D1.displayDistance();不是 -。 –
'operator -'不應該修改變量,所以你不應該像這樣使用'-D1;',它應該什麼也不做。你應該像這樣使用它:'D1 = -D1;' – smead