Так что я хочу сделать, это
инициализировать конструктор моего подкласса конструктором моего базового класса.
Вот так выглядит мой конструктор базового класса.
Appointment::Appointment(string description, int month, int day, int year, int hour, int minute):date(month, day, year){
this-> hour = hour;
this-> minute =minute;
this-> description = description;
}
это то, как выглядит мой конструктор подкласса
Daily::Daily(string description, int month, int day, int year, int hour, int minute) : Appointment(description, month, day, year, hour, minute){
}
^ в конструкторе моего подкласса (ежедневно) есть ошибка, в которой говорится, что мне нужно явно инициализировать член ‘date’, у которого нет конструктора по умолчанию.
Как явным образом инициализировать «date» и «Appointment» в списке инициализатора моего конструктора подкласса?
Это выглядит примерно так?
Daily::Daily(string description, int month, int day, int year, int hour, int minute) : Appointment(description, month, day, year, hour, minute):Date(month, day, year)
Спасибо
принимая во внимание date
а также appointment
, с помощью этот другой вопрос Вы разместили, чтобы быть как:
Date date;
Appointment appointment;
Вы можете использовать этот синтаксис конструктора:
Daily::Daily(string description, int month, int day, int year, int hour, int minute) : appointment(description, month, day, year, hour, minute), date(month, day, year) { ... }
Обычно в определении, как:
A::A(...) : x(...), y(...), ... {...}
x(...), y(...), ...
является инициализатора-лист цель которого — инициализировать объекты-члены класса.
Должно быть разделено запятой
Daily::Daily(string description, int month, int day, int year, int hour, int minute) : Appointment(description, month, day, year, hour, minute), Date(month, day, year)
если у ежедневного класса есть (Дата) и есть (Назначение), что означает, что это композиция, то вы должны использовать список инициализаторов, как показано ниже
Daily::Daily(string description, int month, int day, int year, int hour, int minute) :
Appointment(description, month, day, year, hour, minute),
Date(month, day, year) {}
но если у Daily есть только (Назначение) -композиция- и, как я вижу, у Назначения есть (Дата) -композиция-, тогда конструктор Daily должен быть таким
Daily::Daily(string description, int month, int day, int year, int hour, int minute) :
Appointment(description, month, day, year, hour, minute) {}
и параметризованный конструктор Appoiintment вызовет параметризованный конструктор Date