- 【初心者歓迎】C/C++室 Ver.92【環境依存OK】
711 :デフォルトの名無しさん[sage]:2014/09/22(月) 00:12:18.72 ID:9pHn0j6v - メンバ関数内でインスタンス化したメンバ変数を、
別のメンバ関数内で自殺した後にメンバ変数を返すという処理を作りたいのですが、 deleteされているのでメンバ変数がnullになります なので、メンバ変数ではなく、クラスを指定して自殺した直後にインスタンス化してそれを返そうと思うのですが、 型を変数に代入し、それを元にインスタンスを作ることは可能なのでしょうか?
|
- 【初心者歓迎】C/C++室 Ver.92【環境依存OK】
713 :デフォルトの名無しさん[sage]:2014/09/22(月) 00:22:07.21 ID:9pHn0j6v - あ、delete thisとメンバ変数をreturnで返せる方法があればその方がいいです
別にローカル変数に参照を避難させてもいいんですが、方法があるなら知りたいです
|
- 【初心者歓迎】C/C++室 Ver.92【環境依存OK】
715 :デフォルトの名無しさん[sage]:2014/09/22(月) 00:24:47.05 ID:9pHn0j6v - >>712
「自殺した」を「インスタンスが自殺した」と補足すればわかりやすいかもしれません
|
- 【初心者歓迎】C/C++室 Ver.92【環境依存OK】
716 :デフォルトの名無しさん[sage]:2014/09/22(月) 00:28:16.17 ID:9pHn0j6v - >>714
そのインスタンスの親クラスのポインタです つまりそのインスタンスと、メンバ変数の型は兄弟で、 そのメンバ関数は自分を返すか、自殺してメンバ変数を返すか のどちらかです
|
- 【初心者歓迎】C/C++室 Ver.92【環境依存OK】
717 :デフォルトの名無しさん[sage]:2014/09/22(月) 00:34:37.31 ID:9pHn0j6v - return hoge,if(hoge!=this)delete this;
って書ければ楽なんですが
|
- 【初心者歓迎】C/C++室 Ver.92【環境依存OK】
721 :デフォルトの名無しさん[sage]:2014/09/22(月) 08:51:27.43 ID:9pHn0j6v - 呼び出し元で呼び出すインスタンスを綺麗に入れ替えることが出来るので設計はこれでいいかなーと・・・
ローカル変数はごちゃごちゃした計算を簡単にするためだったり、入力バッファのためとか、メソッドチェーンが長くなりすぎたりした場合は仕方なく使うんですが 一目でわかるような値に別の変数付けたくないです コード行が無駄に長くなって逆に見難いですし
|
- 【初心者歓迎】C/C++室 Ver.92【環境依存OK】
722 :デフォルトの名無しさん[sage]:2014/09/22(月) 09:06:09.05 ID:9pHn0j6v - >>718
コンストラクタでメンバ変数hogeにthisを代入して、メンバ関数ではそれを延々と返す処理があります このhogeは、次呼び出して欲しいクラスです メンバ関数内の任意のタイミングでhoge = new NextThisClass()ってすると、 次呼び出されるのはNextThisClassで、前のインスタンスは呼び出し元から参照が無くなるので、 返す直前に自殺しよう、という設計です つまり PrevThisClass::PrevThisClass():hoge(this){} ThisClass* PrevThisClass::Update(){ if(hoge!=this)delete this; return hoge; } void PrevThisClass::SetHoge(ThisClass* thisClass){ hoge =thisClass; } 今、こんな感じなんですが、>>711の前半に記述してある問題が・・・
|
- Eclipse統合M35【Java/C++/Ruby/Python/Scala】
167 :デフォルトの名無しさん[sage]:2014/09/22(月) 09:08:20.89 ID:9pHn0j6v - 怖かったら
「ごめんなさい」 と小さく書いておけば大体許してもらえるぞ!
|