Определение структуры c ++ - как определить структуру члена с одним аргументом в конструкторе - PullRequest
4 голосов
/ 13 июня 2011

Простой вопрос. У меня есть структура, которая имеет член, который также является структурой. Структура struct принимает один строковый параметр при построении. Однако в определении класса компилятор не позволяет создавать его оттуда. То есть следующее не разрешено:

struct StructName {
   string       str;
   OtherStruct  other_struct("single string param")   
};

Поэтому я попытался не указывать параметр, который не срабатывает, потому что он должен принимать один:

struct StructName {
   string       str;
   OtherStruct  other_struct;

   StructName(string arg);  
};

Я новичок в C / C ++, поэтому извините, если это идиотский вопрос.

Спасибо.

1 Ответ

11 голосов
/ 13 июня 2011

Используйте список инициализации:

struct StructName {
   string       str;
   OtherStruct  other_struct;

   StructName(): other_struct("init string") { }   
};

Вы также можете взять аргумент для StructName и передать его other_struct, например:

StructName(string arg): other_struct(arg) { }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...