/*
1)在构造函数执行时,先执行初始化列表,实现变量的初始化,然后再执行函数内部的语句
2)成员初始化的顺序只与声明的顺序有关,而跟初始化列表的顺序无关。
*/
//注意
//(1):如果在基派中定义了非默认的构造函数,那么派生类的默认构造函数就会被删除,所以派生类中如果不声明构造函数那么
//将无法通过派生类创建对象,派生类的创建方式
//类中声明为AlarmClock();
//类外函数创建为AlarmClock::AlarmClock(int h,int m,int s):Clock(h,m,s){};
class Clock {
private:
int H, M, S;
public:
Clock(int h, int m, int s) :H(h), M(m), S(s) {};
void SetTime(int h, int m, int s);
void Disp();
};
void Clock::SetTime(int h, int m, int s)
{
H = h;
M = m;
S = s;
}
void Clock::Disp()
{
cout << H << '-' << M << '-' << S << endl;
}
class AlarmClock:public Clock
{
private:
int AH, AM;
bool OpenAlarm;
public:
AlarmClock(int h, int m, int s);
int SetAlarm(int ah, int am);
int SwitchAlarm(bool Open = true);
void ShowTime();
};
AlarmClock::AlarmClock(int h,int m,int s):Clock(h,m,s) {
}
int AlarmClock::SetAlarm(int ah, int am)
{
AH = ah;
AM = am;
return 1;
}
int AlarmClock::SwitchAlarm(bool Open)
{
OpenAlarm = Open;
return 1;
}
void AlarmClock::ShowTime()
{
cout << "闹钟:" << AH << '-' << AM << endl;
}
int main()
{
AlarmClock a(15,15,15);
a.Disp();
a.SetTime(10, 10, 10);
a.Disp();
a.SetAlarm(10, 10);
a.SwitchAlarm(1);
a.ShowTime();
system("pause");
}
C++创建派生类以及构造函数的该如何声明
最新推荐文章于 2023-02-10 20:10:45 发布