ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

入出力演算子のオーバーロードその1

入出力演算子とはコンソールに文字を出力したりするときにつかう<<と>>のこと。<<演算子は挿入演算子、>>演算子は抽出演算子ともいう。
独自に作成したクラスを<<で出力するようにするプログラムは次の通り。

#include <iostream>
using namespace std;

class Vector
{
private:
    int x,y;
public:
    Vector(int a, int b) { x=a; y=b; }
    friend ostream &operator<<(ostream &stream, Vector obj);
};

ostream &operator<<(ostream &stream, Vector obj)
{
    stream << obj.x << ", ";
    stream << obj.y << endl;
    return stream;
}

void main()
{
    Vector obj(123, 456);

    cout << obj;
}

privateなメンバにアクセスできるようにVectorでは<<のオーバーロード関数をfrined関数として定義している。