main 関数で exit(0) と return 0 の違い
つまりローカル変数のデストラクタが呼ばれるかどうか、ということ。
exitの時
#include <iostream> using namespace std; class Foo { public: Foo() {} ~Foo() { cout << "Destructor was called." << endl; } }; int main() { Foo foo; exit(0); }
結果
$ ./a.out $
returnの時
#include <iostream> using namespace std; class Foo { public: Foo() {} ~Foo() { cout << "Destructor was called." << endl; } }; int main() { Foo foo; return 0; }
結果
$ ./a.out Destructor was called. $