C++相談室 part19
■ このスレッドは過去ログ倉庫に格納されています
0392デフォルトの名無しさん
NGNGstruct A {
int a; A() { }
};
struct B {
int b; B() : b() { }
};
int main()
{
cout << A().a << endl; // 無茶苦茶な値
cout << B().b << endl; // 0
int * p = new int;
cout << *p << endl; // 無茶苦茶な値
delete p;
p = new int[1];
cout << p[0] << endl; // 無茶苦茶な値
delete [] p;
p = new int();
cout << *q << endl; // 0
delete p;
}
ってなりました。
初期化子入れないとデフォルトコンストラクタが呼ばれる、
と思ってたけど、実際にデフォルトコンストラクタを指定すると挙動が違うんですね。
これって、int とかだと明示的に指定しないと
デフォルトコンストラクタが呼ばれないという仕様なんでしょうか?
■ このスレッドは過去ログ倉庫に格納されています