栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++继承知识点

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++继承知识点

1、在继承体系中,很少用private,一般使用都是public继承
2、权限大小关系:public > protected > private.
3、对于访问修饰限定符,如果不写,默认struct中成员默认是public,class默认是private. 对于继承也一样,struct中默认的继承方式是public;class默认的是private,但是最好显式写出。
4、赋值兼容规则 - 切片,把子类中父类那部分切来赋值过去。

	Person p;
	Student s;

	//1.父类 = 子类
	p = s;
	Person* ptr = &s;
	Person& ref = s;

5、1. 在继承体系中,父类和子类具有独立的作用域。因此,同名成员可以同时存在。
6、若子类与父类有同名成员,由局部优先原则,子类会屏蔽父类,优先访问自己类中的成员;若想访问父类成员,需要指定作用域。这种情况就叫隐藏/重定义。

7、构造析构:父类成员调用父类的来处理,自己的成员按普通类处理。
8、子类析构函数结束时,会自动调用父类的析构函数,这样才能保证先析构子类成员,后析构父类成员。
9、友元关系不能继承。父类的友元,不是子类的友元。
10、多继承看起来很合理,一个类继承多个类,但其实它就是一个坑( Java等语言直接没有多继承,避开这个坑),它带来的菱形继承,一个研究生助教对象中有两份Person,会有数据冗余和二义性的问题。
11、为了解决解决菱形继承的二义性和数据冗余的问题,C++付出了极大的代价,虚继承。
12、一般不建议设计出多继承,一定不要设计出菱形继承。否则在复杂度及性能上都有问题。
13、继承是白箱复用(white-box reuse),父类成员除了私有的不可见,公有和保护对子类都是透明的可以直接访问(事实上,继承中要复用很少定义私有),因此白箱复用在一定程度上破坏了封装;组合是黑箱复用(black-box reuse),D只能访问C的公有,不能访问保护,和在类外的对象一样。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/887550.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号