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 。
通过以上分析,可以看到:无论哪种继承方式,在派生类中是不能访问基类的私有成员的, 私有成员只能被本类的成员函数 所访问 ,毕竟派生类和基类不是同一个类 。
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 。
通过以上分析,可以看到:无论哪种继承方式,在派生类中是不能访问基类的私有成员的, 私有成员只能被本类的成员函数 所访问 ,毕竟派生类和基类不是同一个类 。
相关文章推荐
- C++ 公有继承、保护继承和私有继承中类成员的访问权限的控制
- C++ 公有继承、保护继承和私有继承中类成员的访问权限的控制
- C++基类和派生类私有、保护、公有成员访问控制以及动态绑定、三种继承
- C++ 公有继承、保护继承和私有继承中类成员的访问权限的控制
- C++ 公有继承、保护继承和私有继承中类成员的访问权限的控制
- C++ 公有继承、保护继承和私有继承中类成员的访问权限的控制
- 从零开始学C++之继承(一):公有/私有/保护继承、overload/overwrite/override之间的区别
- C++继承:公有,私有,保护
- C++学习笔记14,private/protected/public继承,私有继承,保护继承,公有继承(五)(总结)
- C++学习笔记14,private/protected/public继承,私有继承,保护继承,公有继承(五)(总结)
- c++高级---C++继承:公有,私有,保护
- C++继承:公有,私有,保护
- C++ 私有、保护、公有继承
- C++继承:公有,私有,保护
- C++继承:公有,私有,保护
- C++继承:公有,私有,保护 http://www.cnblogs.com/qlwy/archive/2011/08/25/2153584.html
- C++继承:公有 私有 保护
- C++:公有继承、私有继承和保护继承
- C++的私有继承、公有继承和保护继承
- C++继承:公有,私有,保护