タグ付けされた質問 「destructor」

12
デストラクタを手動で呼び出すことは、常に悪い設計の兆候ですか?
私は考えていました:彼らはあなたが手動でデストラクタを呼んでいるなら-あなたは何か間違ったことをしていると言います。しかし、それは常に当てはまりますか?反例はありますか?手動で呼び出す必要がある状況、またはそれを回避することが難しい/不可能/非現実的な状況ですか?

2
関数オブジェクトを使用するC ++スレッド、複数のデストラクタはどのように呼び出されますが、コンストラクタは呼び出されないのですか?
以下のコードスニペットを見つけてください。 class tFunc{ int x; public: tFunc(){ cout<<"Constructed : "<<this<<endl; x = 1; } ~tFunc(){ cout<<"Destroyed : "<<this<<endl; } void operator()(){ x += 10; cout<<"Thread running at : "<<x<<endl; } int getX(){ return x; } }; int main() { tFunc t; thread t1(t); if(t1.joinable()) { cout<<"Thread is joining..."<<endl; t1.join(); } …


5
ループ内のローカルオブジェクトのデストラクタは、次の反復の前に呼び出されることが保証されていますか?
ループがあり、このループ内で新しいスタック変数を作成すると(ヒープ上に割り当てず、ループ本体内で宣言された変数を保持する変数ではありません)、このオブジェクトのデストラクタは、次の反復が始まる前に呼び出されることが保証されます。コンパイラによるループの展開はそれについて何かを変更しますか?
11 c++  destructor 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.