いくつかのプログラミング言語にある予約語(キーワード)の1つで、演算子のオーバーロードや、新しい演算子の定義など、演算子に関係することを記述するために用います。
C++ では「operator 演算子」という名称の関数を定義することにより、演算子オーバーロードを行えます。
// C++ の例
class Point {
public:
(int x, int y) : m_x(x), m_y(y)
Point{}
operator+(const Point& other) const
Point {
return Point(m_x + other.m_x, m_y + other.m_y);
}
private:
int m_x;
int m_y;
};
詳細は、新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 では operator はキーワードではありませんが、標準で定義されている演算子のほかに、新しい演算子を定義するために infix operator
や prefix operator
、postfix 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で書く |
![]() |
管理者情報 | プライバシーポリシー |