Presentation is loading. Please wait.

Presentation is loading. Please wait.

なぜ演算子をオーバーロードするの? 演算子に新しい役割をもたせたいから << 演算子 左オペランドが出力ストリーム

Similar presentations


Presentation on theme: "なぜ演算子をオーバーロードするの? 演算子に新しい役割をもたせたいから << 演算子 左オペランドが出力ストリーム"— Presentation transcript:

1 なぜ演算子をオーバーロードするの? 演算子に新しい役割をもたせたいから << 演算子 左オペランドが出力ストリーム
<< 演算子 左オペランドが出力ストリーム 右オペランドが文字列のとき 文字列を出力する cout << “hello!!!”; 左オペランドのデータを 右オペランドで指定されたビット分 左シフトする 5 << 2 演算子の オーバー ロード 新しい 役割 << 演算子 左オペランドのデータを 右オペランドで指定されたビット分 左シフトする 5 << 2

2 演算子のオーバーロードの例2 10 5 3 15 13 o1 o2 hello friends hellofriends +演算子 +演算子
coordオブジェクトと coordオブジェクトを加算 左オペランドのデータと 右オペランドのデータを加算  3+7 演算子の オーバー ロード 10 o1 5 3 o2 + 15 13 Stringオブジェクトと Stringオブジェクトを連接 hello friends hellofriends 左オペランドのデータと 右オペランドのデータを加算  3+7

3 +なのに減算した値が出てきて気持ち悪いぞ
10 o1 5 3 o2 7 +なのに減算した値が出てきて気持ち悪いぞ ちょっとびっくり +演算子をオーバーロードして というように実装することもできるが、本来の使い方と正反対になり、混乱を招く coord coord::operator+(coord ob2) { coord temp; temp.x = x - ob2.x; temp.y = y - ob2.y; return temp; } 演算子の本来の使い方から連想できない ような実装をしないこと!!


Download ppt "なぜ演算子をオーバーロードするの? 演算子に新しい役割をもたせたいから << 演算子 左オペランドが出力ストリーム"

Similar presentations


Ads by Google