3-3-3. 関係演算子のオーバーロード
公開日: 21:55 3. オブジェクト指向編/3-3. オーバーロード/3-3-3関係演算子のオーバーロード
C++では<、>、<=、>=、==のように様々な関係演算子がサポートされており、C++の組み込みデータ型の比較に使われます。これらの演算子はオーバーロードすることができ、クラスのオブジェクトを比較に利用できます。
以下はどのようにして<演算子をオーバーロードされるかの例であり、似た方法で他の関係演算子をオーバーロードすることができます。
#include <iostream> using namespace std; class Distance { private: int feet; // 0 から無限 int inches; // 0 から12 public: Distance(){ feet = 0; inches = 0; } Distance(int f, int i){ feet = f; inches = i; } // 画面出力関数 void displayDistance() { cout << "F: " << feet << " I:" << inches <<endl; } // -演算子のオーバーロード Distance operator- () { feet = -feet; inches = -inches; return Distance(feet, inches); } // <演算子のオーバーロード bool operator <(const Distance& d) { if(feet < d.feet) { return true; } if(feet == d.feet && inches < d.inches) { return true; } return false; } }; int main() { Distance D1(11, 10), D2(5, 11); if( D1 < D2 ) { cout << "D1はD2より短い " << endl; } else { cout << "D2はD1より短い " << endl; } return 0; }上のコードをコンパイルし実行すると、次の結果が得られます。
D2はD1より短い
0 件のコメント :
コメントを投稿