- C++相談室 part124 [無断転載禁止]©2ch.net
480 :デフォルトの名無しさん (ワッチョイ b9b4-7Olf)[sage]:2016/05/07(土) 12:16:58.48 ID:GYpWU44C0 - コピー禁止(ムーブは可能)なクラス A について
vector<A> vec; としたとき、 A *a = new A(5 /* 引数は適当 */); な a を vec に追加するにはどうしたらいいですか?
|
- C++相談室 part124 [無断転載禁止]©2ch.net
484 :480 (ワッチョイ b9b4-7Olf)[sage]:2016/05/07(土) 12:44:25.73 ID:GYpWU44C0 - >>483
「あるクラスのインスタンスがひとつ」なのがシングルトンでは? >コピーは禁止だけどムーブはオッケー の場合、「各状態のインスタンスが高々ひとつ」の意味なので vector で管理するのは別に変ではないような気がします
|
- C++相談室 part124 [無断転載禁止]©2ch.net
487 :480 (ワッチョイ b9b4-7Olf)[sage]:2016/05/07(土) 13:36:55.97 ID:GYpWU44C0 - >>485 でも言われましたが、コンストラクタに渡すべき引数が
外部から分かるなら emplace_back でいいですね 結局こんな感じで、move() 関数を作りました https://ideone.com/BgtPGR 問題は 1. new で確保したインスタンスに対して呼ばないと死ぬ 2. delete this が激しくキモい ことです
|
- C++相談室 part124 [無断転載禁止]©2ch.net
488 :480 (ワッチョイ b9b4-7Olf)[sage]:2016/05/07(土) 13:43:49.86 ID:GYpWU44C0 - あ、考えてみたら delete this はいらないですね
解放の責任は new した側にありますし やったーできたー
|
- C++相談室 part124 [無断転載禁止]©2ch.net
490 :デフォルトの名無しさん (ワッチョイ b9b4-7Olf)[sage]:2016/05/07(土) 13:53:37.12 ID:GYpWU44C0 - >>489
あれ、できました さっきまで、さっきまで動かなかったはずのコードなのに… ありがとうございます…
|