[過去ログ] C++相談室 part154 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
594: 2021/02/07(日)12:03 ID:2AGAGJ05(3/3) AAS
ああ・・・そういうことね・・・すまん触るべきじゃなかった
595: 2021/02/07(日)13:47 ID:p49/UnNX(3/8) AAS
すまんで済んだらユニットテストは要らんわ!
596: 2021/02/07(日)14:09 ID:qbLU6RFF(1) AAS
野菜食えで馬鹿みたいにブチギレるホリエと一緒やな
597(1): 2021/02/07(日)15:05 ID:HYoiJUgB(8/10) AAS
>>593
奴は「必要ないね」とぬかしたんだ
別に武漢熱に話をすり替えようとすり替えまいとそこは関係ない
598(2): 2021/02/07(日)15:41 ID:yi1XmM9H(1/3) AAS
>>597
文章を字面通りにしか解釈できない人?
599(4): 2021/02/07(日)16:31 ID:jcLu/xd9(1/2) AAS
vectorを参照渡しするときの方法について教えてくください
class sansyo
{
private:
std::vector<short> _stdSansyo;
public:
void setSansyo(std::vector<short>& sansyo);
}
;void sansyo::setSansyo(std::vector<short>& sansyo)
{
省19
600(3): 蟻人間 ◆T6xkBnTXz7B0 2021/02/07(日)16:37 ID:sfdJNFTq(1/2) AAS
>>599
右辺値参照かstd::swap
601: 2021/02/07(日)17:13 ID:8CWTHaUD(1/2) AAS
>>600
サンプル貼ってよ
602(2): 2021/02/07(日)17:21 ID:jcLu/xd9(2/2) AAS
std::swapも右辺値参照も全然上手く行きそうになかっのたで
宣言をポインタにして
private:
std::vector<short> *_stdSansyo;
void sansyo::setSansyo(std::vector<short>& sansyo)
{
_stdSansyo = &sansyo;
sansyo[6] = 100;
_stdSansyo->data()[5] = 50;
}
省2
603: 2021/02/07(日)17:24 ID:8CWTHaUD(2/2) AAS
>>600
ほれほれ
貼れんのか
604: 2021/02/07(日)17:28 ID:yi1XmM9H(2/3) AAS
>>599
参照渡し自体はできてるはず。
ただ参照渡ししたvectorをクラスのメンバに代入して、代入されたクラスメンバの方を更新しているからvectorを渡した元の方にはまったく影響が無いというだけ。
605: 2021/02/07(日)17:29 ID:jX/y7Db/(5/5) AAS
>>598
もうそう言うことにしないと自我が保てないんだろw
606: 2021/02/07(日)17:59 ID:p49/UnNX(4/8) AAS
sansyo::_stdSanshoをどうしても参照にしたいならこうするしか、
class sansho {
private:
std::vector<short> _stdSansyo;
public:
sansho(std::vector<short>& src) : _stdSansyo(src) { }
void setSansyo(std::vector<short>& sansyo);
};
void sansyo::setSansyo(std::vector<short>& sansyo) {
_stdSansyo[5] = 500;
省13
607(1): 2021/02/07(日)18:00 ID:HYoiJUgB(9/10) AAS
>>598
だったら何だとぬかす気だ?
> 存在しないものを見てニヤニヤしてる変態こわい
> 文章を字面通りにしか解釈できない人?
要するに話になんない奴ってことだろ
言ったことにも裏の意味にもコメントされたくない
じゃあ相手しねえでやるから黙ってろゴミ
608: 2021/02/07(日)18:02 ID:p49/UnNX(5/8) AAS
訂正orz
誤: private: std::vector<short> _stdSansyo;
正: private: std::vector<short>& _stdSansyo;
もしcSansyo.setSansyo(moto)の呼び出し時に参照を渡したいんじゃああ!
という向きにはsansyo::_stdSansyoはstd::vector<short>* _stdSanshoにして
ポインタを持つようにすべき
609: 2021/02/07(日)18:10 ID:p49/UnNX(6/8) AAS
ちゅかもっと大きな一般原則としてつぎのどっちかにすべき
(1) std::vector<short>の実体の所有権をmain()(で定義いているmoto)に固定してcSanshoクラスにmotoのアドレスを記憶させない
(2) std::vector<short>の実体の所有権をcSanshoクラスのインスタンス(_stdSansyo;)に固定してmain()でmotoを定義するのをやめる
※ 個人の感想です
つまり出題が悪い。出し直し
610(1): はちみつ餃子 ◆8X2XSCHEME 2021/02/07(日)18:10 ID:hHDgzHUe(1) AAS
>>602
元の考え方を変えずに動作させるにはその方法は十分に妥当だと思うよ。
ただ、もっと複雑なプログラムになったときにうっかりデータよりポインタのほうが
長生きすることになっても発見しづらいデザインになっている。
可能なら全体のデザインを見直すべきという話で、
いっそ所有権を渡してしまったほうが間違いにくいかもねという意味で右辺値参照や swap の話題が出ているので、
>>599 をベースにして右辺値参照や swap を使う例に書き換えるのは難しい。
別物になってしまう。
611(2): 2021/02/07(日)18:11 ID:yi1XmM9H(3/3) AAS
>>607
自分以外の複数の人を同一人物だと思っちゃう人?
612: 2021/02/07(日)18:14 ID:p49/UnNX(7/8) AAS
>>611
ネットの総意とか言い出しちゃう人?
613: 2021/02/07(日)18:16 ID:p49/UnNX(8/8) AAS
検証不能な事物を錦の御旗にするような人間が
ソフトウェアのテスト推しなのは
大いなる矛盾である氏ね
上下前次1-新書関写板覧索設栞歴
あと 389 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.020s