質問: デストラクタをC ++で理解する 私たち全員が知っているように、関数が返ってくると、スタックに割り当てられたオブジェクトが再利用され、関連するデストラクタがその前に呼び出されます。私の質問は:どのように私たちがデストラクタを呼び出すことができるようにオブジェクトを表すためにメモリの場所が決定されるのですか?これを実行するために実行時のオーバーヘッドが発生していますか?
回答: > デストラクタを呼び出すことができるように、オブジェクトを表すメモリ位置はどのように決定されますか? > > メモリロケーションは、コンストラクタがいつ呼び出されるかを決定しません。コンパイラは、どの変数がスタックに割り当てられているかを知り、対応するデストラクタを呼び出すための適切なコードを作成します。 少なくとも、彼らは通常スタックにあります。ポイントは、メモリがどこに格納されていたかにかかわらず、同じロジックを使用できるということです。スタックに格納されているということは、一方的に呼び出される必要があることを意味します。