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

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

構造体を参照渡し

構造体を関数に渡したり、戻り値として受け取ったりする場合、値渡しだとコピーが発生するので、参照渡しにしたほうが処理が軽くなる。
ということで、参照渡しを使ったコード。

#include <iostream>
using namespace std;

struct point {
    int x;
    int y;
};

point &func(point &v)
{
    v.x += 100;
    v.y += 200;

    return v;
}

int main()
{
    point pos0,pos1;

    pos0.x = 10;
    pos0.y = 20;

    pos1 = func(pos0);

    cout << pos0.x << ' ' << pos0.y << '\n';
    cout << pos1.x << ' ' << pos1.y << '\n';

    return 0;
}

相変わらず参照渡しが苦手。うまく使えば有効なのは分かっているんだけど、なかなか身についていない。