- 611 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 16:31:48.90 ID:jcLu/xd9.net]
- vectorを参照渡しするときの方法について教えてくください
class sansyo { private: std::vector<short> _stdSansyo; public: void setSansyo(std::vector<short>& sansyo); } ;void sansyo::setSansyo(std::vector<short>& sansyo) { _stdSansyo = sansyo; _stdSansyo[5] = 500; } int main() { std::vector<short> moto; sansyo cSansyo; for (int i = 0; i < 10; i++) { short tmp = i * 2; moto.push_back(tmp); } cSansyo.setSansyo(moto);//ここで参照渡しのはず for (int i = 0; i < 10; i++) { std::cout << "値=" << moto[i] << "\n"; //値が変わっていない } } こんなふうに、参照渡しにしてみたのですがどうも参照渡しになっていないでそのまま新しいvectorが作られちゃったぽいのですが これだとメモリを倍使っちゃってるし、時間も掛かってますよね どういうふうにしたら、喚ばれた側の関数で参照渡しに出来るのでしょう
|

|