类的继承方式
在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()
{
}
原文链接: https://www.cnblogs.com/weidawang/p/12605690.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/195081
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!