список инициализаторов: конструктор из базового класса и функция-член

Так что я хочу сделать, это

инициализировать конструктор моего подкласса конструктором моего базового класса.

Вот так выглядит мой конструктор базового класса.

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)

Спасибо

0

Решение

принимая во внимание 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(...), ... является инициализатора-лист цель которого — инициализировать объекты-члены класса.

1

Другие решения

Должно быть разделено запятой

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)
0

если у ежедневного класса есть (Дата) и есть (Назначение), что означает, что это композиция, то вы должны использовать список инициализаторов, как показано ниже

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

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector