Я поместил std :: option в конструктор класса. Но когда я делаю экземпляр этого класса, опуская необязательный аргумент, я получаю ошибку, что такого конструктора для этого класса не существует. Я хотел бы знать, как правильно использовать std :: необязательный.
Конструктор для моего класса 'Автомобиль' выглядит так:
Car::Car(string make, string model, Racer *driver, optional<Racer*> codriver) : m_make(make), m_model(model), m_driver(driver), m_codriver(codriver)
{
}
Вот как выглядит моя главная:
void main()
{
Racer *r1 = new Racer{ "John Doe", "male", "08/05/1987", "Ford" };
Racer *r2 = new Racer{ "Jane Doe", "male", "06/09/1990", "Ford" };
Racer *r3 = new Racer{ "Howard", "male", "18/04/1985", "Dodge" };
Car c1{ "Ford", "Mustang GT350R", r1, r2 };
Car c2{ "Dodge", "Challenger SRT Hellcat RedEye", r3 };
}
Я ожидал, что использование опционально позволит мне не предоставлять штурмана при создании нового экземпляра автомобиля. Однако, похоже, это не так, поскольку я получаю сообщение об ошибке, что такого конструктора нет.