C++相談室 part166 (635レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
610(2): デフォルトの名無しさん (ワッチョイ dbd6-ERpe) [sage] 2025/09/07(日) 07:39:38.11 ID:yhbLpr+z0(1/2) AAS
obj1=obj2;
の後obj2を変更すると、obj1が書き換わってまってびっくりして
その後、Javaが怖い親父です。
614(1): デフォルトの名無しさん (ワントンキン MMe6-+IOe) [sage] 2025/09/07(日) 16:53:15.89 ID:2DaEs5aKM(1/2) AAS
>>610 >>613それはオブジェクトへの参照の競合が起きてる
それぞれで書き換え更新または読み取り中の書き換えをすることでスパゲッティなコードを招いてしまう
その競合をコンパイルエラーにして防いでくれるのはRustだけだと思う
626: デフォルトの名無しさん (ワントンキン MM8a-+IOe) [sage] 2025/09/09(火) 07:29:27.85 ID:DVL1/TmTM(2/2) AAS
元々の話とは>>610や>>613でこれらが参照の競合の最も単純な例
様々な言語で発生してもちろんC++でも生じる
同一データに対して複数の参照を持つと他の参照によっていつの間にか指していたデータの値が書き換わってしまう
これがバグやコードのスパゲッティ化を引き起こす最も大きな原因の一つ
そのためreadonlyでない限り複数の参照を避けるのが好ましい
そのため競合する参照を禁止している言語もある
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.041s