class c{};
c *ar[2];
ar = {new c, new c}; //error
«Тип массива не присваивается» Как назначить его после объявления, я хочу сделать это, потому что класс использует эту переменную, поэтому я просто хочу объявить его, создать класс и затем присвоить значение, которое я не могу назначить раньше класс, потому что он не может сделать new c
без определения класса в первую очередь.
использовать стандартный алгоритм библиотеки generate
:
#include <algorithm>
#include <iterator>
class c{};
c* ar[2];
std::generate(std::begin(ar), std::end(ar), [] { return new c; });
используйте цикл:
for(auto i = std::begin(ar);i!=std::end(ar);++i)
*i = new c;
это будет работать для (почти) всех контейнерных классов, а не только для необработанных массивов.