初始值设定项列表:基类和成员函数中的构造函数
initializer list: a constructor from the base class and a member function
所以我想做的是
使用基类的构造函数初始化子类的构造函数。
这就是我的基类构造函数的样子。
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",它没有默认构造函数。
如何在子类构造函数的初始值设定项列表中显式初始化"日期"和"约会"?
它看起来像这样吗?
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 类有一个 (Date) 和一个 (约会),这意味着它是一个组合,那么你必须使用初始化程序列表,如下所示
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) {}
并且 Appoiintment 参数化构造函数将调用 Date 参数化构造函数
相关文章:
- 对RValue对象调用的LValue ref限定成员函数
- 为什么使用 "this" 指针调用派生成员函数?
- 将公共但非静态的成员函数与ALGLIB集成
- 使用指向成员的指针将成员函数作为参数传递
- 将重载的成员函数传递给函数模板
- 我不小心调用了一个没有自己类对象的成员函数.但这是怎么回事呢
- 如何在C++中使用非静态成员函数作为回调函数
- C++错误C2600:无法定义编译器生成的特殊成员函数(必须首先在类中声明)
- 关联容器的下界复杂性:成员函数与非成员函数
- 在 C++ 中用派生类型重写成员函数
- 链表的泛型函数remove()与成员函数remove)
- 如何将lambda作为模板类的成员函数参数
- constexpr构造函数需要常量成员函数时出现问题
- 将自由函数绑定为类成员函数
- 区分非成员函数和头文件中的成员函数
- 如何从子成员函数修改父公共成员变量
- 保留对其他类的成员函数的引用
- 在运算符重载定义中使用成员函数(const错误)
- 内联如何影响模块接口中的成员函数
- 将成员函数指针作为参数传递给模板方法