トップページ > プログラム > 2016年05月07日 > GYpWU44C0

書き込み順位&時間帯一覧

7 位/210 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000002300000000005



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん (ワッチョイ b9b4-7Olf)
480 (ワッチョイ b9b4-7Olf)
C++相談室 part124 [無断転載禁止]©2ch.net

書き込みレス一覧

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
あれ、できました
さっきまで、さっきまで動かなかったはずのコードなのに…
ありがとうございます…


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。