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; }
相关文章推荐
- 派生类对基类成员的访问权限和派生类对象对基类成员的访问权限
- C++ 中基类及派生类中继承成员访问权限
- 派生类是否继承基类中的private成员,若继承为何不能在成员函数中访问?
- [转]c++类继承中的using声明,派生类中用using声明改变基类成员的访问权限
- 在继承中派生类成员函数的访问权限测试
- OJ——指向基类的指针访问派生类的成员函数
- 区分“派生类对象”和“派生类”对基类成员的访问权限
- c++类继承中的using声明,派生类中用using声明改变基类成员的访问权限[zz]
- YTU-OJ-Problem J: B3 指向基类的指针访问派生类的成员函数
- 派生类访问基类成员权限
- c++类继承中的using声明,派生类中用using声明改变基类成员的访问权限
- C++基类成员函数访问派生类对象的基类成员问题
- 在继承中派生类成员函数的访问权限测试
- [导入]派生类对基类成员的访问权限
- C++的继承操作---基类指针访问派生类问题---基类成员恢复访问属性问题
- C++成员变量、函数修饰符与访问权限
- 继承项目第13周-项目1-基类中成员的访问限定符和派生类的继承方式
- 基类中成员的访问限定符和派生类的继承方式
- 派生类可以恢复继承成员的访问级别, 但不能使访问级别比基类中原来指定的更严格或更宽松 [C++Primer Page484 : 2去除个别成员]
- C++ 类的继承,子类以及之类的对象 对父类成员函数的访问权限