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 件のコメント :
コメントを投稿