Lesson 17 继承与派生基础
来源:互联网 发布:淘宝哪家饰品店好 编辑:程序博客网 时间:2024/05/17 22:52
一、继承:
子类是父类的一种!is a;特化/泛化
<span style="font-size:18px;"><span style="font-size:18px;">class Person{public:void think();void work();private:string m_strName;bool m_bGender;int m_iAge;};class Teacher:Person{public:void teach();private:int money;};</span></span>
继承和派生的关系:(基类/父类,派生类/子类)
继承是在一个已经存在的类的基础上建立一个新的类;
派生是从已经有的类(父类)产生一个新了子类;
分类:
1. 单重继承:继承于一个父类
2. 多重继承:多个父类,同时是2个类的一种情况;
1. 单级继承:继承关系只有2层
2. 多级继承:超过2层
继承声明:
2. 多重继承: // 多重继承下,继承方式不能共享
3. 默认继承方式(省略情况下的继承方式):
class: private;
struct: public
注意:
class A
{
public:
int mval;
}
class B: public A
{
public:
int mval; // 这个是可以定义的,不算重定义,这是重名隐藏
}
B b;
b.mval; // 调用的是B里的成员,要调用A里的成员要:
b.A::mval; // 可以访问,所以B里是分配了A里的成员内存的
构造函数初始化:
二、继承过程
1)吸收基类成员
2)调整基类成员
调整基类的public, private属性
class A : public B;
A类publicprotectedprivateB类外NNInAccessibleB类内YYInAccessibleclass A : private B;
A类publicprotectedprivateB类外NNNB类内YYN
InAccessible:不可直接访问
继承方式:
1. 控制的是子类成员函数与对象的访问方式;
public:
子类继承了父类的protected, private原态;
protected:
父类 ->子类: public, protected-->proteced ; private不变 ; // 类外即用对象无法直接访问属性,但可以用函数接口间接访问;
private: has a关系
父类->子类: public, protected, private-->private;
总结:基类成员在派生类中的访问权限,由基类成员权限与继承权限取小的那个权限,而private成员永远是不可访问的!!!
public , protected成员 在protected, privated继承下都是只能在类内访问,为外不能访问;
对于单级继承,private与protected继承没有区别,但对于多级继承来说,private继承对于第三重继承,无法访问第一重的public, protected成员,造成了截断!
派生类只能获得直接基类的成员,不能获得间接基类的成员,要通过直接基类来获得间接基类的成员;
调整基类成员在子类中的权限:
using <父类名>::成员名; // 该方法当然只能针对父类中非inAccessible的成员变量
3)增加派生类成员
- Lesson 17 继承与派生基础
- Lesson 18 继承与派生(2)
- Lesson 19 继承与派生(3)
- c++基础(继承与派生)
- 继承与派生基础车程序
- C++基础——继承与派生
- (C++基础)浅谈继承与派生
- C++基础:继承与派生(声明 继承方式 访问规则)
- 派生类与继承
- C++继承与派生
- C++ [ 继承与派生 ]
- 继承与派生
- 继承与派生
- 继承与派生
- 继承与派生
- C++ 继承与派生
- c++继承与派生
- 继承与派生
- Mac 下通过 shell 执行 ruby 文件
- Web之Javascript基础
- 【Android】mac编译android-4.4.2
- Android学习之 Touch事件传递机制
- 设计模式(知识点)
- Lesson 17 继承与派生基础
- 快速排序 java版
- 根目录执行chmod -R 777 / 的补救方法
- 使用udev高效、动态地管理Linux设备文件
- poj 1753 Flip Game
- 黑马程序员 【】java学习之路——IO流使用解析
- 关于移动互联网的小思考
- 四、表空间、数据库对象
- 第八章 8.2.2节练习