// new ClassT[N] と動的メモリを配列で確保した際、確保された // オブジェクトの配列全てに対してコンストラクタは呼ばれるのか ? #include <iostream> using namespace std; class Foo { private: int a; public: Foo( int x = 99) { cout << "I'm Constructor " ; a = x ; cout << a << endl ; } virtual ~Foo( ) { ; }; }; int main( ) { Foo *p = new Foo[3] ; // VC6(SP3) は new で失敗しても // ANSI/ISO C++ で定めた動き(bad_alloc をスロー)はせず、 // 古典的に NULL ポインタを返す if ( p == NULL ) { cout << "bad_alloc" << endl ; } else { cout << "success!" << endl; } return 0; } /* OK です。 */ // end of file