C++ 代入演算子のオーバーロード

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 operator=(const Distance &D ) { feet = D.feet; inches = D.inches; } // 距離を表示するメソッド void displayDistance() { cout << "F: " << feet << " I:" << inches << endl; } }; int main() { Distance D1(11, 10), D2(5, 11); cout << "First Distance : "; D1.displayDistance(); cout << "Second Distance :"; D2.displayDistance(); // 代入演算子を使用 D1 = D2; cout << "First Distance :"; D1.displayDistance(); return 0; }

上記のコードをコンパイルして実行すると、次の結果が生成されます。

First Distance : F: 11 I:10
Second Distance :F: 5 I:11
First Distance :F: 5 I:11

C++ 重载运算符和重载函数C++ 演算子のオーバーロードと関数のオーバーロード

その他の拡張