[過去ログ]
C++相談室 part164 (1002レス)
C++相談室 part164 http://mevius.5ch.net/test/read.cgi/tech/1683600652/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
299: デフォルトの名無しさん (ワッチョイ c997-trtU) [sage] 2023/06/23(金) 06:00:18.48 ID:AFPisFIg0 なんかのオブジェクトをポインタじゃなく実体として持ってるとして、それを delete するやり方ってないの? たとえば std::vector A に対して delete &A; みたいな http://mevius.5ch.net/test/read.cgi/tech/1683600652/299
303: デフォルトの名無しさん (ワッチョイ 196e-ljvc) [sage] 2023/06/23(金) 07:18:45.05 ID:v++V1HM40 >>299 deleteはdynamic storage durationのオブジェクトにのみ許される std::vector<int> A;はautomatic storage durationの場合はその定義を囲むブレースから逸脱すれば破棄される static storage durationの場合はプログラムの実行終了時に破棄される thread storage durationの場合はスレッド終了時に破棄される http://mevius.5ch.net/test/read.cgi/tech/1683600652/303
311: デフォルトの名無しさん (ワッチョイ 0d4e-L1I+) [sage] 2023/06/23(金) 10:11:58.67 ID:Zb3L9Wmq0 >>299 deleteで何をしたいかによるな deleteは ・デストラクタを呼び出して ・メモリを開放する という2つの動作が含まれるが、「メモリを開放する」に関しては、確保されてもいないメモリはもちろん開放できないが、 デストラクタは実体としてはただの関数なので、普通に呼び出すことは可能 ただし、メモリが開放される(deleteされる)時にもデストラクタはもちろん呼び出されるので、2重に呼び出しても大丈夫なように設計されたクラスである必要はある http://mevius.5ch.net/test/read.cgi/tech/1683600652/311
312: デフォルトの名無しさん (ワッチョイ 8101-1tDD) [sage] 2023/06/23(金) 11:56:54.20 ID:jOpqVfQE0 >>299 スコープを終わらせれば消える http://mevius.5ch.net/test/read.cgi/tech/1683600652/312
320: デフォルトの名無しさん (アウアウウー Sacd-Hkv7) [sage] 2023/06/23(金) 16:11:46.79 ID:lCxAQSJFa >>299 デストラクタに直接リソース解放させるより リソース解放用の dispose() みたいな関数を造っておいて デストラクタから dispose() 呼ぶのと同時に delete しないで dispose() だけ外から呼ぶ設計もあるよ http://mevius.5ch.net/test/read.cgi/tech/1683600652/320
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.038s