Как записать в объект массив строк С++
Конструктор класса User:
User(string fio[2], double telefoneNumber, int accountBalance)
{
this->fio[0] = fio[0];
this->fio[1] = fio[1];
this->fio[2] = fio[2];
this->telefoneNumber = telefoneNumber;
this->accountBalance = accountBalance;
}
Вызов это конструктора:
int main()
{
User firstuser({ "Cucumber", "Andrey", "Ananasovich" }, 88005553535, 500);
}
Строка { "Cucumber", "Andrey", "Ananasovich" } вызывает ошибку. Как правильно будет записать свойства в объект firstuser

Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Ну, можно, например, вот так
struct User
{
string fio[2];
User(initializer_list<string> fio)
{
auto it = fio.begin();
this->fio[0] = *it++;
this->fio[1] = *it;
}
void out()
{
cout << fio[0] << " " << fio[1] << endl;
}
};
int main(int argc, char * argv[])
{
User u({"aaa","bbb"});
u.out();
}
Но это по сути означает оказаться персонажем того анекдота — "о, месье понимает толк в извращениях!"...
Это С++, и решать проблемы надо в его рамках. Не обязательно через array, можно и вот так — но тогда лучше использовать вектор строк, что-то вроде
vector<string> fio;
User(initializer_list<string> fio):fio(fio)
{