继承
没有金刚钻,也木有刷子
个人学习记录而已,主要供自己查看,如有不当请见谅。
展开
-
菱形继承
1.菱形继承概念 两个派生类继承同一个基类 又有某个类同时继承两个派生类 这种继承被称为菱形继承,或者钻石继承 菱形继承带来的主要问题是子类继承两份相同的数据,导致资源浪费以及毫无意义 利用虚继承可以解决菱形继承问题 #include<iostream> using namespace std; #include<string> //动物类 class Animal { public: int m_age; }; //利用虚继承解决菱形继承的问题 //加virtual原创 2021-03-03 13:14:59 · 427 阅读 · 0 评论 -
多继承用法
1.c++允许一个类继承多个类 语法:class 子类:继承方式 父类1,继承方式 父类2... 多继承可能会引发父类中有同名成员出现,需要加作用域区分 c++实际开发中不建议用多继承 #include<iostream> using namespace std; #include<string> //多继承 class Base1 { public: Base1() { m_a = 100; } int m_a; }; class Base2 { publ原创 2021-03-03 12:06:06 · 130 阅读 · 0 评论 -
继承同名静态成员处理方式
1.问题:继承中同名的静态成员在子类对象上如何进行访问? 2.静态成员和非静态成员出现同名,处理方式一致 访问子类同名成员 直接访问即可 访问父类同名成员 需要加作用域 #include<iostream> using namespace std; #include<string> //继承中同名静态成员处理 class Base { public: Base() { m_a = 100; } static void func() { cout <..原创 2021-03-03 11:48:43 · 85 阅读 · 0 评论 -
继承同名成员处理方式
问题:当子类和父类出现同名成员,如何通过子类对象访问到子类或者父类中同名的数据呢? 访问子类同名成员 直接访问即可 访问父类同名成员 需要加作用域 #include<iostream> using namespace std; #include<string> //继承中同名成员处理 class Base { public: Base() { m_a = 100; } void func() { cout << "Base - func() 调.原创 2021-03-03 10:43:05 · 78 阅读 · 0 评论 -
继承中构造和析构顺序
1.子类继承父类后,当创建子类对象,也会调用父类的构造函数 2.继承中先调用父类构造函数,再调用子类构造函数,析构顺序与构造相反 #include<iostream> using namespace std; #include<string> //继承中的构造和析构顺序 class Base { public: Base() { cout << "Base构造函数" << endl; } ~Base() { cout <<原创 2021-02-27 17:40:10 · 698 阅读 · 0 评论 -
继承中的对象模型
1.父类中私有成员也是被子类继承下去了,只是由编译器给隐藏后访问不到 #include<iostream> using namespace std; #include<string> //继承方式 //父类中私有成员也是被子类继承下去了,只是由编译器给隐藏后访问不到 class Base { public: int m_a; protected: int m_b; private: int m_c; }; class Son :public Base { public:原创 2021-02-27 17:14:23 · 86 阅读 · 0 评论 -
类的继承方式
1.继承语法: class 子类 : 继承方式 父类 2.继承方式一共三种: 公共继承 保护继承 私有继承 #include<iostream> using namespace std; #include<string> //继承方式 class Base1 { public: int m_a; protected: int m_b; private: int m_c; }; //公共继承 class Son1 :public Base1 { public:原创 2021-02-27 15:59:54 · 641 阅读 · 0 评论 -
继承的基本用法
1.继承的好处:可以减少重复的代码 2.语法: class A : public B A为子类或者派生类 B为父类或基类 3.派生类中的成员包含两大部分: 一类是从基类继承过来的,一类是自己增加的成员 从基类继承过来的表现其共性,而新增的成员体现其个性 #include<iostream> using namespace std; #include<string> //普通实现页面 //Java页面 //class Java //{ //public: // // /原创 2021-02-27 15:01:50 · 318 阅读 · 0 评论