c++ でクラスのコンストラクタと関数実行を同時に行う書き方ができますが、この方法でアプリを実行すると通常のインスタンスを作ってから関数を実行する書き方と違い、関数実行後にデストラクタが即時実行されます。
この書き方はなにか特別な呼称があるでしょうか?
C++
1#include <iostream> 2using std::cout; 3using std::endl; 4class Class { 5public: 6 Class() 7 { 8 cout << "Call constructor." << endl; 9 }; 10 ~Class() 11 { 12 cout << "Call destructor." << endl; 13 }; 14 void func() 15 { 16 cout << "Call function." << endl; 17 }; 18}; 19 20int main(int, char**) { 21 22 Class().func(); 23 // ここでデストラクタが実行される 24 25 cout << "Exit" << endl; 26 27 // インスタンスを作った場合ここでデストラクタが実行される 28 return 0; 29}
出力
console
1Call constructor. 2Call function. 3Call destructor. 4Exit
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/27 12:13