次のコードがあるとします。
int *q = new int(42), *r = new int(100);
r = q;
r
は、 と同じ動的に割り当てられたオブジェクトを指すようになりますq
。の初期化中に作成されたオブジェクトはどうなりますr
か? それはまだ有効ですか?いかがですdelete
か?
私はそれを書いていることを知っています:
delete q;
q と r の両方を無効にします。私がした場合:
delete r;
これは q と r の両方を無効にしませんか?
たとえそれがあったとしても、int
値が 100 の元のオブジェクトはまだぶらぶらしていませんか?