具有另一个类对象属性的类的构造方法

时间:2019-03-14 06:04:33

标签: c++ object constructor attributes declaration

构造函数声明:

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}{}

问题在于属性小时,我不知道如何正确声明它。

这是类hora构造函数:

内部类:

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

外部课程:

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

1 个答案:

答案 0 :(得分:1)

的使用
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}{}