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

C++ 保护,私有继承,公有继承 ---访问属性--关系

2017-04-05 21:15 351 查看
#include <iostream>

using namespace std;

// 多级继承 访问属性

class A

{

public:

int i;

protected:

void f2();

int j;

private:

int k;

};

class B:public A

{

public:

void f3();

protected:

void f4();

private:

int m;

};

class C: protected B

{

public:

void f5();

private:

int n;

};

类A 是类B的共用基类,类B是类C的保护基类。各成员在不同类中的访问属性如下:

i f2 j k

f3 f4 m
f5 n

基类A 公用 保护 保护 私有

共用派生类B 公用 保护 保护 不可访问 公用 保护 私有

保护派生类C 保护 保护 保护 不可访问 保护 保护 不可访问 公用 私有

根据以上分析,在派生类C的外面只能访问类C的成员函数 f5 , 不能访问其他成员。派生类C的成员函数f5 能访问基类A的成员 i ,f2 , j 和 派生类B的成员 f3 ,f4 。派生类B的成员函数 f3 ,f4 能访问基类A 的成员 i ,f2, j 。

通过以上分析,可以看到:无论哪种继承方式,在派生类中是不能访问基类的私有成员的, 私有成员只能被本类的成员函数 所访问 ,毕竟派生类和基类不是同一个类 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: