operator | Programming Place Plus 用語集

トップページ用語集

名称 🔗

解説 🔗

いくつかのプログラミング言語にある予約語キーワード)の1つで、演算子のオーバーロードや、新しい演算子定義など、演算子に関係することを記述するために用います。

C++ の場合 🔗

C++ では「operator 演算子」という名称の関数を定義することにより、演算子オーバーロードを行えます。

// C++ の例
class Point {
public:
    Point(int x, int y) : m_x(x), m_y(y)
    {}

    Point operator+(const Point& other) const
    {
        return Point(m_x + other.m_x, m_y + other.m_y);
    }

private:
    int m_x;
    int m_y;
};

詳細は、新C++編「演算子のオーバーロード」のページを参照してください。

C# の場合

C# の場合も、「operator 演算子」という名称のメソッドを定義することにより、演算子オーバーロードを行えます。

// C# の例
struct Point
{
    public int X { get; set; }
    public int Y { get; set; }

    public Point(int x, int y)
    {
        X = x;
        Y = y;
    }

    public static Point operator+(Point a, Point b)
    {
        return new Point(a.X + b.X, a.Y + b.Y);
    }
}

Swift の場合

Swift では operator はキーワードではありませんが、標準で定義されている演算子のほかに、新しい演算子を定義するために infix operatorprefix operatorpostfix operator のような構文で使用されます。

// Swift の例。

// ** で表される、べき上演算子を定義する 
infix operator ** : MultiplicationPrecedence

// Double型に対する演算子関数を定義する
func ** (base: Double, exponent: Double) -> Double {
    return pow(base, exponent)
}

infix は演算子がどの位置に置かれるタイプのものであるかを指定するキーワードで、この場合は中置演算子となります(x ** y のように、2つのオペランドの間に置く)。MultiplicationPrecedence は演算子の優先順位の指定で、この場合は乗算と同じであることを指定しています。


参考リンク 🔗

更新履歴 🔗


用語集のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る