構造体を関数に渡したり、戻り値として受け取ったりする場合、値渡しだとコピーが発生するので、参照渡しにしたほうが処理が軽くなる。
ということで、参照渡しを使ったコード。
#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; }
相変わらず参照渡しが苦手。うまく使えば有効なのは分かっているんだけど、なかなか身についていない。