開発環境
- Microsoft Windows 7 Home Premium (OS)
- Microsoft Visual C# 2010 Express Edition (IDE)
- 言語: C#
独習C# 第3版 ハーバート・シルト (著) エディフィストラーニング株式会社 矢嶋聡 (監修, 翻訳) の第7章(C演算子のオーバーロード、インデクサー、プロパティ)の理解度チェック2を解いてみる。
2.
クラス型と組み込み型を含む演算子を行うために必要なことは、可換律(交換法則)が成り立つようにする(引数の順序を変えてもよくする)こと。
コード
using System; public class Threed3D { private int x, y, z; public Threed3D() { int x = y = z = 0; } public Threed3D(int x, int y, int z) { this.x = x; this.y = y; this.z = z; } public static Threed3D operator +(Threed3D t, int k) { Threed3D result = new Threed3D(); result.x = t.x + k; result.y = t.y + k; result.z = t.z + k; return result; } public static Threed3D operator +(int k, Threed3D t) { return t + k; } public void Display() { Console.WriteLine("({0}, {1}, {2})", x, y, z); } } class Tester { public void Run() { Threed3D t = new Threed3D(1, 2, 3); int k = 10; Threed3D t1 = t + k; Threed3D t2 = k + t; t.Display(); t1.Display(); t2.Display(); } static void Main() { Tester t = new Tester(); t.Run(); } }
入出力結果(Console Window)
(1, 2, 3) (11, 12, 13) (11, 12, 13) 続行するには何かキーを押してください . . .
0 コメント:
コメントを投稿