開発環境
- 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 コメント:
コメントを投稿