#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