ホーム > 製品情報 > SophiaFramework UNIVERSE > チュートリアル > C++ の基礎 > 演算子

C++の基礎 : 演算子

演算子


C 言語では演算子を独自に定義することはできませんでしたが、C++ 言語では独自の演算子を定義することができます。

たとえば、2次元の座標系の点を表す Point というクラスについて考えてみましょう。

class Point
{
public:
    SIntN x;
    SIntN y;

    Point() {}    // 初期化は何もしない

    Point(SIntN x0, SIntN y0)
    {
        x = x0;
        y = y0;
    }

    Point operator + (const Point& p0) const
    {
        Point p1;
        p1.x = x + p0.x;
        p1.y = y + p0.y;
        return p1;
    }
};

この Point クラスでは operator + という名前のメンバ関数によって、+ 演算子を定義しています。この関数は引数に Point を受け取り、Point を返していますから、次のような使い方ができます。

Point p(10, 20);
Point q(3, 4);
Point r = p + q;    // r.x = 13, r.y = 24 になる

C++ 言語では、+ 演算子の他にも- * / == != & | ~ ^ >> << -> new delete など多くの演算子を定義できます。

【Java では】Java では演算子を独自に定義することはできません。

この章のまとめ

やってみよう

次のようなコードを実行してみましょう!

+ 演算子は正しく計算しているでしょうか? 他の演算子も定義して使ってみましょう。

Void TestOperator(Void)
{
    Point p(10, 20);
    Point q(3, 4);
    Point r = p + q; 

    SFXHelper::dbgprintf("r.x=%d, r.y=%d", r.x, r.y);
}