您的位置:首页 > 编程语言 > C语言/C++

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++支持多重继承。多重继承是一个类从多个基类派生而来的能力。派生类实际上获取了所有基类的特性。当一个类 是两个或多个基类的派生类时,派生类的构造函数必须激活所有基类的构造函数,并把相应的参数传递给它们 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: