您的位置:首页 > 其它

part4.(two)派生类成员函数和其它函数访问基类成员时的权限(访问控制表)

2013-05-06 21:33 274 查看

一、关于访问控制符(3种访问属性)

  1、类中的访问控制符:①默认值为私有,可声明为公有或保护;

            ②私有(private)成员的访问属性:只能供本类的成员函数和友员函数访问,不准其它函数访问;

            ③公有(public)成员的访问属性:可供任何函数访问;

            ④保护(protected)成员的访问属性:除与私有成员相同外,还允许派生类成员函数访问,但不准其它函数访问。

  2、结构体(struct)中的访问控制符:默认为公有,可设置为私有或者保护

  3、联合结构体(union):只能为公有

即:本类(直接基类)的成员函数有权访问访问控制表内的所有成员。派生类的成员函数只能访问具有public和protected属性的成员。而其他函数只能访问具有public属性的成员。

二、3种继承方式

配合3种访问属性 构成的 访问关系映射表 如下

[b]将派生类中某些继承数据的私有性质改变为公有性质

// der_priv_1.cpp
// When derivation is private so that public or protected member in base class
// becomes privately accessible in derived class, it can become publicly accessible
// by "using base::a;"

#include <iostream.h>

class A
{
public:
      A(int i) {    a=i;}
protected:    //or public:
      int a;
};

class B: A    //private derivation
{
public:
      B(int a):A(a) { }
      using A::a;        //将A::a的私有性质改变为公有性质
};

void main()
{
     B  obj(5);
     cout<<obj.a<<endl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐