Работа в Xcode на Mac OS X Leopard в C++:Как инициализировать массив в конструкторе класса?
У меня есть следующий код:
class Foo{
private:
string bars[];
public:
Foo(string initial_bars[]){
bars = initial_bars;
}
}
Это не компилируется и выдает следующее сообщение об ошибке:
error: incompatible types in assignment of 'std::string*' to 'std::string [0u]'
Я заметил, что удаление строки bars = initial_bars;
решает проблему. Кажется, что я неправильно выполняю задание. Как я могу решить эту проблему?
EDIT:
Переменные бары представляет собой массив строк. В основной функции я инициализирую его следующим образом:
string bars[] = {"bar1", "bar2", "bar3"};
Но он может содержать произвольное количество членов.
Для начала, декларация 'string bars []' self - это ошибка в коде, совместимом с ISO C++, - тот факт, что ваш компилятор позволяет вам это сделать (и, судя по сообщению об ошибке, рассматривает его как 'string bars [0]'), означает, что он предлагает это как расширение. –