Есть структура:
struct A{
char * buf;
A(int size){
buf = new char[size];
}
};
Хочу создать массив объектов A с указанным размером.
A * a = new A[10](10); // 10 объектов, должны конструироваться через A(int size)
но никак не получается.
Ответ
Если нет уж очень принципиальной потребности полагаться на сырые new, то можно использовать std::vector и один из его конструкторов:
std::vector v(10, A(10));
Правда в этом случае объект создается указанным конструктором один раз, а далее уже происходит копирование. То есть нужно написать подходящий копирующий конструктор.
Комментариев нет:
Отправить комментарий