C++的继承与派生
来源:互联网 发布:干洗衣店软件 编辑:程序博客网 时间:2024/05/20 18:15
派生类的构成
从基类接收成员:
派生类把基类所有的数据成员接收过来。
调整从基类接收的数据成员:
可以改变基类成员在派生类中的访问属性,这是通过指定继承方式决定的。
1.公用继承
2.私有继承
3.保护成员和保护继承
说明:(1)公用的,派生类内和派生类外都可以访问;(2)受保护的,派生类内可以访问,派生类外不能访问,其下一层的派生类可以访问;(3)私有的,派生类内可以访问,派生类外不能访问;(4)基类中不可访问的,派生类内和派生类外都不能访问。
多级派生时的访问属性
class A{ public: int i; protected: void f2(); int j; private: int k;};class B:public A{ public: void f3(); protected: void f4(); private: int m;};class C:protected B{ public: void f5(); private: int n;};
i f2 j k f3 f4 m f5 n基类A: 公用 保护 保护 私有 公用派生类B: 公用 保护 保护 不可访问 公用 保护 私有保护派生类C: 保护 保护 保护 不可访问 保护 保护 不可访问 公用 私有
多重继承的二义性问题
C++提供虚基类(Virtual base class)的方法,使得在继承间接共同基类时只保留一份成员。规定:在最后派生类中不仅要负责对其直接基类进行初始化,还要负责对虚基类初始化
例:
class person{ public: person(string nam,char s,int a){ name = nam; sex = s; age = a; } private: string name; char sex; int age;};class Teacher:virtual public person{ public: Teacher(String nam,char s,int a,string t):person(nam,s,a){ title = t; } protected: string title;};class student:virtual public person{ public: student(string nam,char s,ing a,float sco):person(nam,s,a){ score = sco; } protected: float score;};class graduate:public teacher,public student{ public: graduate(string nam,char s,int a,string t,float sco,float w): person(nam,s,a),teacher(nam,s,a,t),studeng(nam,s,a,w){ wage = w; } private: float wage;};
注:不继承来自基类的构造函数和析构函数,派生类需要自己定义和重写自己的构造函数和析构函数
完
0 0
- C++: 继承与派生
- 继承与派生(C++)
- C++:继承与派生
- C++_继承与派生
- C++_继承与派生
- C++_继承与派生
- C++_继承与派生
- 【学习C++】继承与派生
- O-c中类的继承与派生的概念
- C++: 类的继承派生
- C++-继承:基类与派生类的关系
- 类的继承与派生
- 类的继承与派生
- 类的继承与派生
- 类的继承与派生
- C++的继承与派生
- 类的继承与派生
- 类的继承与派生
- Python 常用的特殊函数
- 浅谈移动APP攻击 - 东二门陈冠希
- Leetcode 5. Longest Palindromic Substring(字符串)
- Error in switch in android 5.0
- LinkedList源码分析
- C++的继承与派生
- 获取iPhone 的UUID
- LayoutInflater的使用
- seo 关于时间的问题
- Pods/Pods-frameworks.sh: No such file or directory -工程删除cocopods出错!!!
- LeetCode#198. House Robber
- 十道海量数据处理面试题与十个方法大总结
- MySQL 入门 之 联接关键字
- linux MySQL重置密码