10/11/19 16:48:06
>>136
やってみたら E2243 new で確保した配列には初期化子が使えない (C++) が出るな
#include <iostream>
class foo {
public: int x; foo( void ) { x = 1; }
};
int main( void ) {
foo* p; int* x; int i;
p = new foo[10]; x = new int[10];
for( i = 0; i < 10; i++ )
std::cout << p[i].x << ", " << x[i] << std::endl;
return 0;
}
試しにこんなコードを書いてみたら、p[].x は全て1に初期化されていたけど、x[] は未初期化状態だ
int はディフォルトコンストラクタを持たないって事かな?