2012年4月7日土曜日

開発環境

  • 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 コメント:

コメントを投稿