C++ 笔记
2015-09-12 21:51
190 查看
强调public、private、protected继承只是影响到基类的public成员和protected成员。并且不管哪种继承,子类成员都可以访问基类的public,protected成员,不可以访问基类的private成员。继承属性对于子类对象来说只是影响子类对象对基类的public成员的访问权限,对于子类的派生类来说,影响子类的派生类对基类的public成员和protected成员的访问权限。虚函数在基类中的访问权限既可以是public,也可以是private和protected。在子类中的重写的虚函数访问权限可以改变。
1.如果是public继承,基类的public成员为派生类的public成员,基类的protected成员为派生类的protected成员。子类对象可以访问基类的public成员。
2.如果是protected继承,基类的public成员和protected成员在派生类中为protected成员。子类对象不可以访问基类的public成员。
3.如果是private继承,基类的public成员和protected成员在派生类中为private成员。子类对象不可以访问基类的public成员。
1, 公有继承(public)
基类成员对其对象的可见性与一般类及其对象的可见性相同,public成员可见,protected和private成员不可见。
基类成员对派生类的可见性对派生类来说,基类的public和protected成员可见:基类的public成员和protected成员作为派生类的成员时,它们都保持原有状态;基类的private成员依旧是private,派生类不可访问基类中的private成员。
基类成员对派生类对象的可见性: 对派生类对象来说,基类的public成员是可见的,其他成员是不可见的。
所以,在公有继承时,派生类的对象可以访问基类中的public成员,派生类的成员方法可以访问基类中的public成员和protected成员。
2, 私有继承(private)
基类成员对其对象的可见性与一般类及其对象的可见性相同,public成员可见,其他成员不可见。
基类成员对派生类的可见性:对派生类来说,基类的public成员和protected成员是可见的:基类的public成员和protected成员都作为派生类的private成员,并且不能被这个派生类的子类所访问;基类的私有成员是不可见的:派生类不可访问基类中的private成员。
基类成员对派生类对象的可见性:对派生类对象来说,基类的所有成员都是不可见的。
所以在私有继承时,基类的成员只能由直接派生类访问,无法再往下继承。
3.保护继承(protected)
保护继承与私有继承相似,基类成员对其对象的可见性与一般类及其对象的可见性相同,public成员可见,其他成员不可见。
基类成员对派生类的可见性,对派生类来说,基类的public和protected成员是可见的:基类的public成员和protected成员都作为派生类的protected成员,可以被这个派生类的子类所访问;基类的private成员是不可见的:派生类不可访问基类中的private成员。
基类成员对派生类对象的可见性:对派生类对象来说,基类的所有成员都是不可见的。
所以,在保护继承时,基类的成员也只能由直接派生类访问,但是可以向下继承。
C++支持多重继承。多重继承是一个类从多个基类派生而来的能力。派生类实际上获取了所有基类的特性。当一个类 是两个或多个基类的派生类时,派生类的构造函数必须激活所有基类的构造函数,并把相应的参数传递给它们 。
1.如果是public继承,基类的public成员为派生类的public成员,基类的protected成员为派生类的protected成员。子类对象可以访问基类的public成员。
2.如果是protected继承,基类的public成员和protected成员在派生类中为protected成员。子类对象不可以访问基类的public成员。
3.如果是private继承,基类的public成员和protected成员在派生类中为private成员。子类对象不可以访问基类的public成员。
1, 公有继承(public)
基类成员对其对象的可见性与一般类及其对象的可见性相同,public成员可见,protected和private成员不可见。
基类成员对派生类的可见性对派生类来说,基类的public和protected成员可见:基类的public成员和protected成员作为派生类的成员时,它们都保持原有状态;基类的private成员依旧是private,派生类不可访问基类中的private成员。
基类成员对派生类对象的可见性: 对派生类对象来说,基类的public成员是可见的,其他成员是不可见的。
所以,在公有继承时,派生类的对象可以访问基类中的public成员,派生类的成员方法可以访问基类中的public成员和protected成员。
2, 私有继承(private)
基类成员对其对象的可见性与一般类及其对象的可见性相同,public成员可见,其他成员不可见。
基类成员对派生类的可见性:对派生类来说,基类的public成员和protected成员是可见的:基类的public成员和protected成员都作为派生类的private成员,并且不能被这个派生类的子类所访问;基类的私有成员是不可见的:派生类不可访问基类中的private成员。
基类成员对派生类对象的可见性:对派生类对象来说,基类的所有成员都是不可见的。
所以在私有继承时,基类的成员只能由直接派生类访问,无法再往下继承。
3.保护继承(protected)
保护继承与私有继承相似,基类成员对其对象的可见性与一般类及其对象的可见性相同,public成员可见,其他成员不可见。
基类成员对派生类的可见性,对派生类来说,基类的public和protected成员是可见的:基类的public成员和protected成员都作为派生类的protected成员,可以被这个派生类的子类所访问;基类的private成员是不可见的:派生类不可访问基类中的private成员。
基类成员对派生类对象的可见性:对派生类对象来说,基类的所有成员都是不可见的。
所以,在保护继承时,基类的成员也只能由直接派生类访问,但是可以向下继承。
C++支持多重继承。多重继承是一个类从多个基类派生而来的能力。派生类实际上获取了所有基类的特性。当一个类 是两个或多个基类的派生类时,派生类的构造函数必须激活所有基类的构造函数,并把相应的参数传递给它们 。
相关文章推荐
- C++ 注释规范
- 关于C++代码中的#pragma预处理指令
- Effective C++——条款33(第6章)
- 串口调试助手--VC++ 2010 开发
- C++ Primer第九章课后编程问题
- C++中的字符串
- 周易起名方法C语言程序
- C++面向对象
- C++基础知识
- C语言---进制
- C++ 初始化类的常量数据成员、静态数据成员、常量静态数据成员
- C++_简单的链表栈
- C++中this指针用法详解
- [C++] memcopy 和 memmove的区别和实现
- [C++] struct 内存对齐问题
- c语言 链表 写通讯录
- c++遇到个简单而费时的小语法问题
- 关于VC++编译
- 深入解读C++中的指针变量
- K均值聚类(C++)