Например, класс с именем Table, конструктором которого является: Table(string name="", vector <string> mods);
Как мне инициализировать вектор пустым?
Изменить: забыл упомянуть, что это C++.
Например, класс с именем Table, конструктором которого является: Table(string name="", vector <string> mods);
Как мне инициализировать вектор пустым?
Изменить: забыл упомянуть, что это C++.
Table(string name="", vector <string> mods);
если вы хотите, чтобы вектор был пустым внутри конструктора, тогда
mods.clear();
or
mods.swap(vector<string>());
Если вы хотите в качестве параметра по умолчанию:
Table(string name="", vector<string> mods = vector<string>());
Как и любой другой параметр по умолчанию.
vector<string> mods
имел значение reference
, то в таких случаях вы должны использовать const
, потому что C++
не позволяет связывать временные переменные с reference
.
- person Krishna Oza; 09.03.2016
Чтобы добавить к другому ответу: если вы используете С++ 11, вы можете использовать универсальный синтаксис инициализации, чтобы сократить объявление параметра по умолчанию для вектора до следующего:
Table(string name="", vector<string> mods={});