【C++】继承

【C++】继承,第1张

假设我们有一个对象person,里面的成员变量有个整型age,再创建一个对象student,成员变量是char类型的_name。


继承的意思就是在person的基础上,再添加其他的成员,不改变person的成员变量,在一个新的对象里,不仅包含了person的成员,也加上自己的成员变量,从而达到继承的效果。


这里的person对象称之为“父类”,而student称之为“子类”。


我们可以理解为,儿子继承了爸爸的财产,再发扬光大,获得了爸爸没有的东西,当然,儿子也可以在某一地方选择低调,拥有而不显示。


想要做到继承,只需要在子类后加上“:+ public + 父类”即可,在初始化期间,自定义成员调用自己的构造函数,且在子类自定义析构时,不需要手动调用父类的析构函数,编译器为了保持后进先出的原则,在子类调用完析构函数后,会自己调用父类的析构函数。


 继承的权限方面,一个类有3种,public继承、protected继承和private继承。


所以父子类一共有9种:

              子类        |        public        |        protected        |        private

父类

public                    |   子类public      |        protected        |        private

protected              |        protected   |        protected        |        private

private                  |        不可见       |        不可见            |        不可见

简单一点理解为,与const的权限类似,只能缩小不能放大,也就是public > protected > private,父类是私有的,子类也看不到,但是存在。


还有友元问题,在父类上友元了,子类上可以调用吗?答案是不可以的,就好比,爸爸的兄弟,儿子不可能也称兄道弟吧。


所以无法调用,如果真的想要调用呢,那就让爸爸的兄弟和你做兄弟,在子类上也友元了,这样才能调用。


当然,还有多继承以及虚拟继承的问题,咱们下次再讲。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/569089.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-09
下一篇 2022-04-09

发表评论

登录后才能评论

评论列表(0条)

保存