父子构造用protected继承

我写了一段代码示例:
class Clock
{
protected:
int h, m, s; //时分秒,protected子类可直接使用
public:
//构造函数初始化列表初始化时分秒
Clock(int hh=0,int mm=0,int ss=0):h(hh),m(mm),s(ss){}

//秒自增、进位
void addSec()
{
s++;
if(s60){s=0;m++;} //满60秒进1分
if(m
60){m=0;h++;} //满60分进1时
if(h==24){h=0;} //满24小时归零
}

//输出24小时格式
void show24()
{
cout << h << ":" << m << ":" << s << endl;
}

};

然后公有继承Clock,拓展12小时制
class NewClock:public Clock
{
public:
NewClock(int hh=0,int mm=0,int ss=0):Clock(hh,mm,ss){}

Protected 继承 = 对外隐藏父类所有接口,对内(本类+派生类)保留父类访问权限,兼顾封装、代码复用与多层继承。

补充:日常开发中 public 继承最常用, protected  继承多用于内部类、底层组件。

posted @ 2026-06-22 16:20  嘿嘿123888888888  阅读(3)  评论(0)    收藏  举报