C++代码重用(一)
创始人
2024-02-12 10:25:12
0

文章目录

          • 1. 私有继承
          • 2. 保护继承
          • 3. 使用using重新定义访问权限

c++的一个主要目标就是促进代码重用,缩短代码开发时间。其中继承就是实现该目标的机制之一。

1. 私有继承

私有继承提供的特性与包含相同:获得实现,并不获得接口。两者都可以用来实现has-a的关系。

私有继承使用关键字private(实际上在继承中private是默认值,因此省略访问限定符也将导致私有继承)。

使用多个基类的继承被称为多重继承,例如:

class A{};
class B{};
class C : private A,private B{    //多重继承...  
};
2. 保护继承

保护继承是私有继承的变体。保护继承在列出基类的时候使用关键子protected;保护继承使得基类的公有成员和保护成员都将称为派生类的保护成员,其与私有继承一样,基类的接口在派生类中都是可用的,但是在继承层次结构之外是不可用的。两者的最大区别在于派生类再派生出另外一个类的时候,使用私有继承第三代类将不能使用基类的接口,因为基类的公有方法在第二代类种变成了私有方法;但是在使用保护继承,第三代类可以使用基类的接口,因为在第二代类中基类的公有方法变成受保护的,因此在第三代类种可以使用它们。

公有继承、私有继承和保护继承的特点如下:

特征公有继承保护继承私有继承
基类的公有成员变成派生类的公有成员派生类的保护成员派生类的私有成员
基类的保护成员变成派生类的保护成员派生类的保护成员派生类的私有成员
基类的私有成员变成只能通过基类的接口访问只能通过基类接口访问只能通过基类接口访问
能否隐式向上转换是(但只能在派生类中)

(注:这里的隐式向上转换只意味着无需进行显式类型转换,就可以将基类指针或引用指向派生类对象)

3. 使用using重新定义访问权限

在使用私有派生和保护派生的时候,基类的公有成员函数将成为私有成员和保护成员。如果希望基类的方法能够在派生类外面可用的话,首先我们能想到的是在派生中定义一个公有方法,在该方法中调用基类的方法,进而实现该效果。另外一种方法就是使用using重新定义访问权限。

class Base{...public:double min();double max();...
}class A:private:Base{...public:using Base::min; //using只使用成员名,不需要圆括号、函数特征标和返回类型using Base::max;...
}//调用
A a;
double min = a.min();
double max = a.max();

相关内容

热门资讯

佳发教育涨2.05%,成交额4... 7月8日,佳发教育盘中上涨2.05%,截至13:15,报11.44元/股,成交4645.13万元,换...
平安电工2025年7月8日涨停... 2025年7月8日,平安电工(sz001359)触及涨停,涨停价40.41元,涨幅9.99%,总市值...
8人被刑拘!甘肃天水通报幼儿血... 央视新闻客户端、人民日报客户端7月8日,甘肃天水市联合调查组发布关于天水市麦积区培心幼儿园幼儿血铅异...
互联网创业真的容易吗?我看未必... 互联网创业真的容易吗?我看未必分类:创业故事|Word文档下载互联网创业真的容易吗?我看未必我们一直...
创业公司 创业公司 创业公司值... 时不时冒出创业的冲动,想去做个屌爆的产品?创业公司忽悠你加入,说的是天花乱坠,到底真靠谱假靠谱?身边...
初中道德与法治评论题答题格式是... 初中道德与法治评论题答题格式是什么?“从不同的角度对上述材料进行分析评论”这种题应该怎么答?要写“答...
创业货款 创业货款 创业者 有的时候,如果我们想要贷款的话,大部分的人都会选择一个比较适合自己的,如果是创业贷款必须要满足一定的...
旭光电子股价跌5.02%,华夏... 7月8日,旭光电子跌5.02%,截至发稿,报12.68元/股,成交5.87亿元,换手率5.45%,总...
八戒包子加盟费多少,小本投资即... 对于包子类的早点小吃来说自然是现在更不错的选择,现在市面上有很多的特色餐饮小吃,尤其是对于包子类的品...
味丰源包子 总投资11 08万... 味丰源包子是深受顾客酷爱美食,传承自正宗的特征包子加盟,却又拥有了专归于自己的特征,在包子加盟市场显...