派生类是否继承基类中的private成员,若继承为何不能在成员函数中访问?
2013-08-15 17:23
260 查看
继承的方式有三种,分别是公有继承、私有继承、保护继承;
公有继承的格式:
class child:public base
{
....
....
}
私有继承的格式:
class child:private base
{
....
....
}
保护继承的格式:
class child:protected base
{
.....
.....
}
在每种方式中,子类继承的基类的变量有不同的访问权限
列表如下:
基类变量类型 继承类型 子类变量类型
public public public
protected protected
private 不可继承
-------------------------------------
public protected protected
protected protected
private 不可继承
-------------------------------------
publlic private private
protected private
private 不可继承
从上表中可以看出,基类的私有成员无论在何种继承方式下都不可以在子类中访问,
如果想让子类访问基类的私有成员变量,可以在基类中增加公有的成员函数,在子类中调有即可,当然也可以在基类中声明子类是基类的友员类,这样也能达到同样的目的。
公有继承的格式:
class child:public base
{
....
....
}
私有继承的格式:
class child:private base
{
....
....
}
保护继承的格式:
class child:protected base
{
.....
.....
}
在每种方式中,子类继承的基类的变量有不同的访问权限
列表如下:
基类变量类型 继承类型 子类变量类型
public public public
protected protected
private 不可继承
-------------------------------------
public protected protected
protected protected
private 不可继承
-------------------------------------
publlic private private
protected private
private 不可继承
从上表中可以看出,基类的私有成员无论在何种继承方式下都不可以在子类中访问,
如果想让子类访问基类的私有成员变量,可以在基类中增加公有的成员函数,在子类中调有即可,当然也可以在基类中声明子类是基类的友员类,这样也能达到同样的目的。
相关文章推荐
- 派生类可以恢复继承成员的访问级别, 但不能使访问级别比基类中原来指定的更严格或更宽松 [C++Primer Page484 : 2去除个别成员]
- 通过protected,private继承的子类不能通过基类指针进行访问。
- C++第十三周任务-项目一(理解基类中成员的访问限定符和派生类的继承方式)
- 三十七、继承与派生:派生类对基类成员的访问控制之公有继承
- 《C++第十二周实验报告1-1》----理解基类中成员的访问限定符和派生类的继承方式
- 类的static成员变量和成员函数能被继承吗? 友元函数能访问父类的private变量吗?那static成员函数能是纯虚函数吗,能被继承吗?
- 基类的protected成员变量只能被子类继承,在基类之外都不能直接访问基类protected成员变量
- 在继承中派生类成员函数的访问权限测试
- 派生类是否包含有基类的private成员?
- (继承及其访问限定符)&&(派生类及其默认成员函数)&&(赋值兼容规则)
- 5月8日实验报告(一)理解基类成员的访问限定符和派生类的继承方式
- C++中继承机制下基类public/private/protected成员的访问方式
- 继承中访问控制:派生类public、protected、private继承基类
- 【提问整理】protected继承,派生类对象如何访问基类成员?
- 为什么子类不能访问基类的private成员(为什么要使用get,set方法)?为什么要这样设计?
- 第12周任务1(理解基类中成员的访问限定符和派生类的继承方式)
- 基类期望派生类继承的函数不能定义为虚函数
- 为什么子类不能访问基类的private成员?为什么要这样设计?
- (继承及其访问限定符)&&(派生类及其默认成员函数)&&(赋值兼容规则)
- C++基类和派生类私有、保护、公有成员访问控制以及动态绑定、三种继承