Конструктор класса с атрибутом, который является другим объектом класса - PullRequest
0 голосов
/ 14 марта 2019

Объявление конструктора:

Funcion(std::string cveFunc=" ", int numP = 0, Hora hour(0,0), int room=0);

Конструктор:

Funcion::Funcion(std::string cveFunc, int numP, Hora hour(), int room) : 
    cveFuncion{cveFunc}, numPeli{numP}, hora hour = {}, sala{room}{}

Проблема в атрибуте hour, я не знаю, как его правильно объявить.

Это конструктор класса hora:

внутри класса:

Hora(int hhh=0, int mmm=0);

вне класса:

Hora::Hora(int hhh, int mmm) : hh{hhh}, mm{mmm} {}

1 Ответ

1 голос
/ 14 марта 2019

Использование

Funcion::Funcion(std::string cveFunc, int numP, Hora hour(), int room)

неверно, поскольку в этом контексте hour объявляется как функция, которая не принимает аргументов и возвращает Hour.Вам необходимо удалить ().Использование:

Funcion::Funcion(std::string cveFunc, int numP, Hora hour, int room)

Предполагая, что hora является переменной-членом класса, инициализация члена также должна быть обновлена ​​до:

cveFuncion{cveFunc}, numPeli{numP}, hora {hour}, sala{room}

Вместе вы получите:

Funcion::Funcion(std::string cveFunc, int numP, Hora hour, int room) :
        cveFuncion{cveFunc}, numPeli{numP}, hora {hour}, sala{room}{}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...