Image

Imagesafinaskar wrote in Imageru_cpp

Category:

Следующий код не компилится:
class A{
public:
 A(int){};
};
int main(){
 A* B = new A[10](0);
 return 0;
};

GCC выдаёт:
Main.cpp: In function `int main()':
Main.cpp:6: error: ISO C++ forbids initialization in array new
Main.cpp:6: warning: unused variable 'B'
Ну с warning всё понятно, а error?
Как изменить код, чтобы он заработал?
Я поясню, чего я хочу: записать в B массив из десяти объектов класса A и к каждому передать в конструктор параметр 0.
Проблема решена. Можно создавать массив объектов только если у них есть дефолтный конструктор.