C++ 类的继承方式

类的继承方式


在C++中,类的继承方式有三种:public、protected、private。

文字解释:

public:     私有属性不可继承,其他各种权限保持不变,和父类相同。

protected:私有属性不可继承,其他属性更改为protected,类内可访问,类外不可访问。

private:    私有属性不可继承,其他属性更改为private,类内可访问,类外不可访问,不允许子类继承。

图解:

代码解释:

// 面向对象继承的方式.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
using namespace std;

class Father {
public:
    int a;
protected:
    int b;
private:
    int c;

};
class Son1 :public Father {

public:
    void show() {
        cout << a << endl;            // 公有成员可以继承,属性不变 public
        cout << b << endl;            // 保护成员可以继承,属性不变 protected
        //cout << money << endl;      // 私有成员不可继承,不能访问 
    }

};

class Son2 :protected Father {
public:
    void show() {
        cout << a << endl;          // 公有属性可以继承,属性改为protected 类内可以访问
        cout << b << endl;          // 保护属性可以继承,属性保持不变,仍然是 protected
        //cout << money << endl;    // 私有成员不可继承
    }

};
class Son3 :private Father {
public:
    void show() {
        cout << a << endl;          // 公有属性可以继承,属性改为private,类内可以访问
        cout << b << endl;          // 保护属性可以继承,属性改为private,类内可以访问
        //cout<< c << endl;         // 私有成员不可继承
    }

};

void test01() {

    Son1 son1;
    son1.a = 0;   // 公有属性仍为public
    // son1.b        保护属性类外不可访问
    // son1.c        私有属性类外不可访问
                                
    son1.show();
}
void test02() {
    Son2 son2;
    // son2.a    // 公有改保护,类外不可访问
    // son2.b    // 保护不改变,类外不可访问
    // son2.c    // 私有不继承,一直不可访问
    son2.show(); // 公有函数可以打印保护成员
}

void test03() {
    Son3 son3;
    // 所有非私有成员全部转为私有,外部不可访问
    
    son3.show();
}

int main()
{
    
    
}

 

猜你喜欢

转载自www.cnblogs.com/PPWEI/p/12605690.html