C类的继承与多重继承的访问控制节能

明星  2020/10/02

在前面的练习中我们一直在使用public的继承方式,即共有继承方式,对于protected和private继承方式,即保护继承与私有继承方式我们并没有讨论。

对于单个类来说,讨论保护继承与私有继承的区别意义是不大的,他们的区别只在多级继承的情况中体现。    在这里我声明一下,对于此章节的内容不太适合用过多的文字进行描述,主要还是看例子,通过例子熟悉之间的关系,过多的文字描述会模糊读者思路。

例程如下

#include iostream

using namespace std;

class Base

{

public://公有的

int a1;

virtual void test() = 0;

protected://受保护的

int a2;

private://私有的

int a3;

};

file://------------------------------------------------------------------------------

class ProtectedClass:protected Base//保护继承

{

public:

void test()

{

a1 = 1;//a1在这里被转变为protected

a2 = 2;//a2在这里被转变为protected

ile://a3=3;/错误,派生类不能访问基类的私有成员

}

};

class ControlProtectedClass:public ProtectedClass//以public方式继承ProtectedClass类

{

public:

void test()

{

a1 = 1;//a1在这里仍然保持为a1在这里被转变为protected

a2 = 2;//a2在这里仍然保持为a1在这里被转变为protected

ile://a3=3;//错误,由于Base类成员为私有的,即使是上级父类是保护继承,也不能改变Base类成员的控制类型

}

};

file://------------------------------------------------------------------------------

class PrivateClass:private Base//私有继承

{

public:

void test()

{

a1 = 1;//a1在这里被转变为private

a2 = 2;//a2在这里被转变为private

ile://a3=3;//错误,基类私有成员对文件区域与派生类区域都是不可访问的

}

};

class ControlPrivateClass:public PrivateClass//以public方式继承PrivateClass类

{

public:

void test()

{

ile://a1=1;//错误,由于基类PrivateClass为私有继承,a1已经转变为private

ile://a2=2;//错误,由于基类PrivateClass为私有继承,a1已经转变为private

ile://a3=3;//错误,由于Base类成员为私有的,PrivateClass类也为私有继承

}

};

file://------------------------------------------------------------------------------

当你真正了解用户的时候

class PublicClass:public Base//共有继承有区别与其它方式的继承,继承后的各成员不会其改变控制方式

{

public:

void test()

{

a1 = 1;//a1仍然保持public

a2 = 2;//a2仍然保持protected

file://a3=3;//错误,派生类不能操作基类的私有成员

}

};

class ControlPublicClass:public PublicClass//以public方式继承PublicClass类

{

public:

void test()

{

a1 = 1;//a1仍然保持public

a2 = 2;//a2仍然保持protected

ile://a3=3;//错误,由于Base类成员为私有成员,即使是上级父类是公有继承,也不能改变Base类成员的控制类型

}

};

file://------------------------------------------------------------

int main()

{

system("pause");

}

铜川白癜病医院
孩子吃多了不消化怎么办
淄博白癜风在哪里治疗
相关推荐
数据管理云计算普及尚需时日节能

国内企业云计算的热潮还在持续之中,更多的话题开始从技术转移到应用落地。根据TechTarget商务智能站的2...

明星 · 2020-10-22 17:49:54
诺尔太阳能携手闯关东剧组山东卫视共拒假冒节能

诺尔太阳能携手《闯关东》剧组、山东卫视共拒假冒伪劣产品近日,随着各地太阳能热水器厂商的旺季到来...

明星 · 2020-10-22 14:43:19
看病难买药难AI帮你算一算节能

中国签就业合同讲究五险一金,远隔大洋的美国也一样,企业需要为员工缴纳医疗保险。美国57%的职工会选...

明星 · 2020-10-22 14:01:15
文案53751节能

淘宝商铺装修技巧全攻略 如何进行淘宝商铺装修在淘宝商铺装修是一类比较受卖家欢迎的经营项目,淘宝为...

明星 · 2020-10-22 13:14:36
肉禽蛋批发价格日报10月12日节能

肉禽蛋批发价格(10月12日)日期: 单位:元/公斤 城北大钟寺 猪肉 12.60 北京岳各庄 猪肉 1...

明星 · 2020-10-22 12:58:54
春节出境过年游受热捧部分长线热门团报名人节能

东快讯(夏菁)春节出境过年游火爆。昨日,东南快报从业内了解到,明年2月14日起出境游预订人数开始上...

明星 · 2020-10-22 11:25:59