C++中继承的总结
2017-11-14 21:45
141 查看
一. 继承的概念
继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。这样产生新的类,称为派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。通过继承机制,可以利用已有的数据类型来定义新的数据类型。所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。我们称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。
二.继承方式
三.继承体系中的作用域
1. 在继承体系中基类和派生类是两个不同作用域。
2. 子类和父类中有同名成员,子类成员将屏蔽父类对成员的直接访问。(在子类成员函数中,可以使用 基类::基类成员 访问)–隐藏 –重定义
3. 注意在实际中在继承体系里面最好不要定义同名的成员。
class base { public: base(const char* name = "",int id = 0) :_name(name),_num(id) {} protected: string _name; //姓名 int _num; //身份证号 与子类_num成员同名 }; class derive :public base { public: derive(const char* name,int id,int num) :base(name,id),_num(num) {} void Display() { cout << "身份证号:" << base::_num << endl; //通过作用域解析符来指定 cout << "学号:" << _num << endl; } protected: int _num; //学号 与父类_num成员同名 }; void Test() { derive d("paul",110,1); d.Display(); } int main() { Test(); system("pause"); return 0; }
四.继承关系
1.单继承<
4000
/strong>
一个子类只有一个直接父类时称这个继承关系为单继承。
[b]2.多继承
一个子类有两个或以上直接父类时称这个继承关系为多继承。
3.菱形继承
五.对象模型
有两个概念可以解释C++对象模型:
1、语言中直接支持面向对象程序设计的部分。
2、对于各种支持的底层实
。
六.虚拟继承
虚拟继承是面向对象编程中的一种技术,是指一个指定的基类,在继承体系结构中,将其成员数据实例共享给也从这个基类型直接或间接派生的其它类,它可共享的特性,避免了拷贝多份相同的数据,从而解决菱形继承的二义性和数据冗余的问
class Base { public: Base() { cout << "B()" << endl; } int b1; }; class Derive : virtual public Base { public: Derive() { cout << "D()" << endl; } int d1; }; void Test() { Derive tmp; tmp.d1 = 1; tmp.b1 = 2; } int main() { Test(); getchar(); return 0; }
相关文章推荐
- C++总结之继承和面向对象的设计
- (总结)C++中实现代码重用的手段----继承和聚合
- C++封装继承多态总结(转)
- C/C++基础知识总结——继承与派生
- c++继承知识总结
- 关于C++中的虚拟继承的一些总结
- C++总结之二(类的继承)
- 关于C++中的虚拟继承的一些总结
- C++封装继承多态总结
- 对C++中继承的一些总结
- C++继承部分总结
- 关于C++中的虚拟继承的一些总结
- C++虚继承虚基类虚函数纯虚函数总结
- ### C++总结-[类的继承]
- C++学习笔记14,private/protected/public继承,私有继承,保护继承,公有继承(五)(总结)
- 关于C++中的虚拟继承的一些总结
- 关于C++中的虚拟继承的一些总结
- C++有关继承的一点总结
- c++面向对象三大特征封装、继承和多态知识总结
- C++封装继承多态总结