0からの、超初心者C++相談室
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/11/12(月) 14:55:13.35ID:Tf74ZWQr 何にも知らない0からの出発、超初心者のためのC++相談室
532蟻人間 ◆T6xkBnTXz7B0
2023/10/02(月) 22:18:32.15ID:/sjCb2h4 連投すみません。コピーコンストラクタと、代入もです。
533はちみつ餃子 ◆8X2XSCHEME
2023/10/03(火) 00:13:21.44ID:OUiDjLFt >>527
暗黙に生成される代入演算子は全てのサブオブジェクトを代入したような挙動になるルール。
ポインタを代入した場合には代入元と代入先のポインタが指す先のオブジェクトは同一なので
一方のポインタを通じて delete したならもう一方のポインタからオブジェクトに触れようとしてはならない。
(もう存在しないので。)
この場合は
d3 = Csmp1(400);
としたときに生成される一時オブジェクトはこの式が終わった時点で解体されるので
d3 内にあるポインタはデストラクタで delete 済み、すなわち無効なポインタとなる。
d3 のデストラクタが起動したときはデータメンバ p が指している先は無効なので
無効なポインタをいじったことになって問題が生じる。
それと d3 のコンストラクトのときに new したオブジェクトはどこからも delete されてない。
暗黙に生成される代入演算子は全てのサブオブジェクトを代入したような挙動になるルール。
ポインタを代入した場合には代入元と代入先のポインタが指す先のオブジェクトは同一なので
一方のポインタを通じて delete したならもう一方のポインタからオブジェクトに触れようとしてはならない。
(もう存在しないので。)
この場合は
d3 = Csmp1(400);
としたときに生成される一時オブジェクトはこの式が終わった時点で解体されるので
d3 内にあるポインタはデストラクタで delete 済み、すなわち無効なポインタとなる。
d3 のデストラクタが起動したときはデータメンバ p が指している先は無効なので
無効なポインタをいじったことになって問題が生じる。
それと d3 のコンストラクトのときに new したオブジェクトはどこからも delete されてない。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【千葉】面識のない20代女性に性的暴行 トルコ国籍の男二人を逮捕 [シャチ★]
- 大谷翔平「1番DH」スタメン入り 崖っぷち0勝3敗から意地の本塁打なるか…突破率2・4% [征夷大将軍★]
- 【芸能】森香澄、書留の配達で戦慄…「ヤバイと思って引っ越しました」「本名なので。同じ人がずっと来るから…」 [冬月記者★]
- ソースネクスト情報流出か ★2 [少考さん★]
- 【野球】パ・リーグCS第2戦 H 6x-2 F [10/15] ホークス栗原サヨナラ満塁ホームラン4勝0敗王手 日本ハム連敗 [鉄チーズ烏★]
- 粗品、千と千尋、国宝、バック・トゥ・ザ・フューチャーなど新旧名作映画を「おもんない」とバッサリ…お気に入り映画告白 [muffin★]
- 【悲報】女子アナ「いやあぁぁぁ郵便局員が書留を「フルネーム呼称」で確認してくるのっ!」👉引っ越し [566475398]
- ( ・᷄ὢ・᷅ )ホモなんスよ
- お母さんが帰って来ない( ;∀;)
- コンビニ裏のゴミ捨て場から廃棄の菓子パン38個を盗んだ56歳男を現行犯逮捕 「”もらおう”とはしたが”盗んで”はいない」と容疑を否認 [597533159]
- 日本共産党「在留資格のない外国人の強制送還は人権侵害。入管の姿勢は理不尽そのもの。絶対に許さない」 [932029429]
- 「eスポーツってTVゲーム大会でしょ?」←炎上wwwwwwwwwwwwwwww