У меня есть вектор под названием Players и класс Player. И я пытаюсь написать:
players.push_back(Player(name, Weapon(bullets)));
Так что я хочу иметь возможность создавать игроков в цикле. Но я вижу сообщение об ошибке «Нет соответствующей функции для вызова Player :: Player ...»
Тогда я изменил это на:
Weapon w(bullets);
Player p(name, w);
players.push_back(p);
Вот мое определение игрока:
class Player {
public:
Player(string &name, Weapon &weapon);
private
string name;
Weapon weapon;
}
Я просто пытаюсь понять, в чем разница между этими определениями. И это правильный способ передачи объекта в конструктор объекта.
Примечание: это не мои фактические определения классов. Я просто пытаюсь что-то узнать об объектно-ориентированном программировании на C ++ с его кодированием Я имею в виду, я знаю, что оружие может быть инициализировано в Player:)