C++中派生类对基类成员的三种访问规则
2011-08-07 16:12
351 查看
C++中派生类对基类成员的三种访问规则
C++中派生类对基类成员的访问形式主要有以下两种:1、内部访问:由派生类中新增成员对基类继承来的成员的访问。
2、对象访问:在派生类外部,通过派生类的对象对从基类继承来的成员的访问。今天给大家介绍在3中继承方式下,派生类对基类成员的访问规则。
1、私有继承的访问规则
当类的继承方式为私有继承时,基类的public成员和protected成员被继承后成为派生类的private成员,派生类的其它成员可以直接访问它们,但是在类的外部通过派生类的对象无法访问。基类的private成员在私有派生类中是不可直接访问的,所以无论是派生类的成员还是通过派生类的对象,都无法直接访问从基类继承来的private成员,但是可以通过基类提供的public成员函数间接访问。私有继承的访问规则总结如下:
基类成员 | private成员 | public成员 | protected成员 |
内部访问 | 不可访问 | 可访问 | 可访问 |
对象访问 | 不可访问 | 不可访问 | 不可访问 |
当类的继承方式为公有继承时,基类的public成员和protected成员被继承到派生类中仍作为派生类的public成员和protected成员,派生类的其它成员可以直接访问它们。但是,类的外部使用者只能通过派生类的对象访问继承来的public成员。基类的private成员在私有派生类中是不可直接访问的,所以无论是派生类成员还是派生类的对象,都无法直接访问从基类继承来的private成员,但是可以通过基类提供的public成员函数直接访问它们。公有继承的访问规则总结如下:
基类成员 | private成员 | public成员 | protected成员 |
内部访问 | 不可访问 | 可访问 | 可访问 |
对象访问 | 不可访问 | 可访问 | 不可访问 |
当类的继承方式为保护继承时,基类的public成员和protected成员被继承到派生类中都作为派生类的protected成员,派生类的其它成员可以直接访问它们,但是类的外部使用者不能通过派生类的对象访问它们。基类的private成员在私有派生类中是不可直接访问的,所以无论是派生类成员还是通过派生类的对象,都无法直接访问基类中的private成员。保护继承的访问规则总结如下:
基类成员 | private成员 | public成员 | protected成员 |
内部访问 | 不可访问 | 可访问 | 可访问 |
对象访问 | 不可访问 | 不可访问 | 不可访问 |
相关文章推荐
- C++中派生类对基类成员的三种访问规则
- C++中派生类对基类成员的三种访问规则
- C++基类和派生类私有、保护、公有成员访问控制以及动态绑定、三种继承
- c++基类成员在派生类中的访问控制
- C++中派生类对基类成员的访问形式
- C++第十三周任务-项目一(理解基类中成员的访问限定符和派生类的继承方式)
- C++:调整基类成员在派生类中的访问属性的其他方法(同名成员和访问声明)
- C++派生类对象访问基类的protected成员
- C++基类成员函数访问派生类对象的基类成员问题
- C++第十二周【任务1】理解基类中成员的访问限定符和派生类的继承方式
- 《C++第十二周实验报告1-1》----理解基类中成员的访问限定符和派生类的继承方式
- C++中派生类访问基类protected成员的范围
- C++模板类的派生类中访问基类成员必须显式调用(作用域限定)
- C++派生类对象访问基类的protected成员
- C++的继承操作---基类指针访问派生类问题---基类成员恢复访问属性问题
- C++派生类对象访问基类的protected成员
- C++ 中基类及派生类中继承成员访问权限
- 第十二周C++【任务1】理解基类中成员的访问限定符和派生类的继承方式
- C++ - 派生类访问模板化基类(templatized base class)的命名