目录
前言
继承和派生:
一:继承的概念:
二:继承和派生
三:继承分类
四:继承方式:
五:继承方式总结语法
六:继承方式:
七:访问权限
八:代码举例:(继承时候的语法,继承权限的验证)
总结
前言
继承简单点来说就是改造,拿原来的东西,原封不动的使用,然后自己添加东西,实现新的功能
继承和派生:
一:继承的概念:
1、在原有的类的基础上快速增加新的功能
2、不影响到原来的类,也不改变原来类的代码,方便对于功能的扩展
3、继承是一种创建新类的方式,新建的类可以继承一个或多个类。
4、继承描述的是类和类之间的关系
5、新建的类称为派生类(子)类,之前存在的类称为基(父)类//记忆方法:基就是地基是盖房子的第一步,所以是之前的就存在的,派生就是派生出新的被,肯定是后出现的,所以叫派生,在原来的类上派生出新的类,那么有原来的类才有后来派生的,有父亲才能有儿子,儿子是父亲生下来的,所以也可以叫父类和子类
二:继承和派生
1、继承和派生是同一个过程,从不同的角度来看//理解:比如说我们去上学,对于学校的老师来说我们是来,对于家里的人来说我就是去,不管是来还是去描述的都是我去上学这件事,再比如打仗,从不同的国家角度来看,就可以是打和挨打嘛,不管是打还是挨打,都是描述打仗嘛,从产生的新类的角度看就是继承,继承原来的创造出新的,从原来的类角度来看就是派生,原来的类派生出新的
也就是说:
2、一个新类从已经存在的类那里获取其已有的特性,这个叫继承
3、从已存在的类产生一个子类,这个叫派生
三:继承分类
1、新建的类继承自一个类,这个是单继承
2、新建的类继承自多个类,这个是多继承
四:继承方式:
1、单继承
class A {}; class B:public A {};//B继承A,:可以理解为通过原本的类产生新得类,那新的类是新出来的嘛,所以就在前面,所以就是 派生类:基类
讯享网
2、多继承
讯享网class D {}; class E {}; class F :public D, public E {};//多个继承之间用逗号连接,:同理,一般的代码继承的类不会太多,因为能少写一点就少写一点嘛,没必要嘛
五:继承方式总结语法
class 派生类名:继承方式1 基类名1,继承方式2 基类名2....... { 类成员声明; };
六:继承方式:
1、作用是限定(描述)子类中,对父类成员的访问权限//继承是把父类的全部东西都拿到子类中,既然把所有的成员都拿到子类中来了,那么就会有问题了,父类中是会有一些访问权限的限制,比如private等,那么父类的不同成员在子类中的权限是什么样的,就要结合继承方式来确定(比较思想,谁权限高听谁的,private权限最高
2、继承方式总共有三种:(public private protected)//public private protected既可以表示父类中成员的访问权限,也可以表示子类继承父类的继承方式,其实也很容易理解嘛,继承是继承父类所有的东西,虽然全继承到了,但是不一定继承的东西都能用的到嘛,所以就有继承方式这一说了,虽然是全继承了,但是父类的有些东西,他就不想让你看嘛,但是父亲一般都是比较疼爱儿子的嘛,如果你心够诚,当然可以让你访问了,但是如果你心不够诚,那么虽然我的所有东西你全继承到了,但是不好意思,你心不够诚,你的继承方式等级不够,那么有些东西你是访问不了的,即使你是子类,我是父类,也不行,所以才有了比较思想
七:访问权限
1、父类有不同访问权限的成员
2、继承有不同的继承方式
3、访问权限和继承方式都是三种,父类成员在子类中的访问权限由两者共同决定
所以也就会有九种不同的情况
八:代码举例:(继承时候的语法,继承权限的验证)
1、继承的代码举例
讯享网#include<iostream> using namespace std; class Father { public: Father(); ~Father(); //数据成员 public: int fa_val_pub;//父类成员名访问权限 protected:protected: int fa_val_pro; protected:private: int fa_val_pri; //成员函数 public: void fa_fun_pub(); protected: void fa_fun_pro; private: void fa_fun_pri; }; class son:public Father { public: son(); ~son(); private: //数据成员 public: int son_val_pub;//父类成员名访问权限 protected:protected: int son_val_pro; protected:private: int son_val_pri; //成员函数 public: void son_fun_pub(); protected: void son_fun_pro; private: void son_fun_pri; }; son::son() { } son::~son() { } int main() { } /*Father类的函数实现*/ Father::Father() { fa_fun_pub = 10; fa_fun_pro = 11; fa_fun_pub = 12; cout << "Father" << endl; } Father::~Father() { cout << "~Father" << endl; } void Father::fa_fun_pub() { cout << "fa_fun_pub" << endl; } void Father::fa_fun_pro() { cout << "fa_fun_pro" << endl; } void Father::fa_fun_pri() { cout << "fa_fun_pri" << endl; } /*son类的函数实现*/ son::son() { this->fa_fun_pub = 20; this->fa_fun_pro= 21; //this->fa_fun_pri= 22;//这是访问不到的,因为是公有继承,私有权限,就是可以继承但是不能访问 this->son_fun_pub = 23; this->son_fun_pro = 24; this->son_fun_pri = 25; cout << "Son" << endl; } son::~son() { cout << "~Son" << endl; } void Son::son_fun_pub() { cout << "son_fun_pub" << endl; } void Son::son_fun_pro() { cout << "son_fun_pro" << endl; } void Son::son_fun_pri() { cout << "son_fun_pri" << endl; }
2、继承权限的验证
继承权限的验证就是分别改变访问权限和继承方式,每一种情况都进行测试,看是否符合访问权限和继承方式的组合情况结果。
总结
继承思想非常重要,一定一定要学会

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/72707.html