C++笔记——类的继承和访问控制

来源:互联网 发布:厦门小青柑普茶淘宝 编辑:程序博客网 时间:2024/06/14 23:34

C++中类的继承的语法如下:

首先定义一个基类(父类),然后定义派生类(子类)继承基类,语法如下

        class 派生类名:访问控制符基类名


访问控制符包括以下三种:

1>public:修饰的成员变量或方法,在类的内部和类的外部都能被访问

        2>protected:修饰的成员变量或方法,只能在类的内部或者继承的子类中访问,不能在类的外部访问

        3>private:修饰的成员变量或方法,只能在类的内部访问,不能在类的外部访问


直接贴代码看:

#include <iostream>using namespace std;class Parent{public:int a;void print(){cout << "Parent a = " << a << endl;}};class Child:public Parent   //访问控制符为public,继承基类的属性和方法{public:int b;};int main(void){Child c1;c1.a = 10;c1.print();return 0;}
运行结果如下:


首先,基类Parent的内部定义了public的属性a和方法print,派生类通过public访问控制符继承基类的属性和方法,那么继承下来的父类属性和方法可以在类的内部和外部都能访问,所以在main函数中对a赋值,并且print出a的值。

下面用protected访问控制符继承基类,再看看结果:

class Child:protected Parent{public:int b;};int main(void){Child c1;c1.a = 10;   //errorc1.print();   //errorreturn 0;}
由于,派生类通过protected继承基类的public属性和方法,这时只能在基类的内部或者派生类的内部访问,而不能在类的外部访问,所以上面的c1.a=10,和c1.print()就会编译不通过,报如下错误:

类似的private访问控制符也类似。

C++中类的继承方式列出如下图:

1>派生类public继承下来基类的属性和方法,属性保持不变

         2>派生类protected继承下来基类的属性和方法,public和protected变为protected,private的还是private类型

         3>派生类private继承袭来基类的属性和方法,都是private的。


C++类的继承方式(public、protected、private)会影响子类的对外访问属性

要判断一句话能否被访问:

1>看调用语句是写在子类的内部还是外部

2>看子类如何从父类继承(public、protected、private)

                3>看父类中的属性和方法的访问级别(public、protected、private)


0 0
原创粉丝点击