C++类訪问控制及继承

一、C++类的訪问控制有三类:public,protected和private。

类訪问控制符 类成员可被哪些对象訪问
public 1、类的成员函数。2、类对象。3、友元。4、子类成员函数
protected 1、类的成员函数。2、友元。3、子类成员函数
private 1、类的成员函数。2、友元

二、C++类的继承

继承方式也有三种:public,protected和private。

继承之后,基类成员的可訪问性会发生变化,例如以下表:

public继承

基类 public protected private
子类 public protected 不可见

protected继承

基类 public protected private
子类 protected protected 不可见

private继承

基类 public protected private
子类 private private 不可见

从上面能够看出,经过继承后,基类的成员訪问性会发生改变,派生类对其的訪问仍然遵从类的訪问控制规则。有关三种继承方式,派生类对基类成员的訪问说明,网上有非常大网友写了大量的文章,只是我认为文字说明非常easy把人绕晕,反而丢掉了其本质。我以为继承没有网友说的那么麻烦,就是基类的可訪问性在派生类中发生了改变,然后,派生类再使用类訪问控制规则对其进行訪问就可以。

值得注意的地方有两个:

一、基类中的private成员在派生类中是不可见的,即无法通过派自己的成员函数去訪问,但能够通过继承来的成员函数訪问。

二、private继承,基类的public和protected成员都成为派生类中的private成员,这样,假设对派生类再派生一个子类,那么,在派生的子类中,将无法直接通过该子类的成员函数訪问继承来的成员;

三、派生类从基类中无法继承的是哪些成员

派生类无法从基类中继承的成员有三种:

1、构造函数和析构函数

2、赋值操作符(operator=()member)

3、友元

时间: 2024-08-01 10:42:01

C++类訪问控制及继承的相关文章

JAVA基础之訪问控制权限(封装)

包:库单元 1.当编写一个Java源码文件时.此文件通常被称为编译单元(有时也被称为转译单元). 2.每一个编译单元都必须有一个后缀名.java,而在编译单元内则能够有一个public类,该类名称必须和文件的名称同样. 3.每一个编译单元仅仅能有一个public类,否则编译器就不会接受. 4.假设在该编译单元之中还有额外的类的话,那么在包之外的世界是无法看见这些类的,由于它们不是public类. 代码组织 xx.java编译生成xx.class package语句必须是文件除凝视以外的第一句程序

Phalcon 訪问控制列表 ACL(Access Control Lists ACL)

Phalcon在权限方面通过 Phalcon\Acl 提供了一个轻量级的 ACL(訪问控制列表). Access Control Lists (ACL) 同意系统对用户的訪问权限进行控制,比方同意訪问某些资源而不同意訪问其他资源等. 这里我们建议开发人员了解一些关于ACL的技术. ACL有两部分组成即角色和资源. 资源即是ACL定义的权限所依附的对象. 角色即是ACL所字义的请求者的身份,ACL决定了角色对资源的訪问权限.同意訪问或拒绝訪问. 创建 ACL(Creating an ACL)? 这

C++ 訪问控制权限图解

基类訪问权限 类继承方式 子类訪问权限           public   public   protected public protected   private   No Access   public   protected   protected protected protected   private   No Access   public   private   protected private private   private   No Access          

CCNP路由实验之十四 路由器的訪问控制ACL

?? ACL(Access Control List,訪问控制列表) 是路由器接口的指令列表,用来控制port进出的数据包.ACL适用于全部的路由协议,如IP.IPX.AppleTalk等.这张表中包括了匹配关系.条件和查询语句,表仅仅是一个框架结构.其目的是为了对某种訪问进行控制.訪问控制列表使用包过滤技术,在路由器上读取第三层及第四层包头中的信息如源地址,目的地址,源port.目的port等,依据预先定义好的规则对包进行过滤.从而达到訪问控制的目的,该技术初期仅在路由器上支持.如今已经支持三

MFC 一个类訪问还有一个类成员对象的成员变量值

作者:卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/35263857 MFC中一个类要訪问另外一个类的的对象的成员变量值,这就须要获得原来那个类对象的指针,事实上有好几种方法都能够实现. 比方维护一个单例模式.设置静态变量等等.我们这里举个列子,实现多个类之间的相互訪问. 一.演示样例:创建MFC对话框,实现对个对话框之间数据訪问 我们创建一个MFC对话框应用程序,命名为Visitproject. 对话框本身有一个主界面(CVis

关于Apacheserver的訪问控制

Apache的訪问控制指对不论什么资源的不论什么方式的訪问控制. 一.基于主机或者IP地址的控制 这样的訪问控制基于訪问者的主机名或者IP地址,通过使用 Deny 和 Allow 指令.实现同意或者禁止某个主机訪问我们的server资源.通常 Order 指令也会一起使用.来定义 Deny 和 Allows 指令起作用的顺序.假设不使用 Order 指令,默认的顺序为 Deny, Allow, 就相当于 Order Deny,Allow. Order 指令和 Allow.Deny 指令配合使用.

[Nginx]用Nginx实现与应用结合的訪问控制 - 防盗链

应用场景:图片等资源须要设置权限,如:仅仅有认证过的用户才干訪问自己的图片. 解决的方法:使用Nginx的防盗链模块http_secure_link能够实现,该模块默认情况下不包括.故在安装时要加上--with-http_secure_link_module 该模块依据两个參数控制权限訪问,一个是过期时间(即该链接在这个时间之前可訪问,过期后无法訪问),该參数主要出于安全考虑. 还有一个是通过md5算法算出来的KEY,一般通过uri计算 举例: server { listen 80; serve

IIS中遇到无法预览的问题(HTTP 错误 401.3 - Unauthorized 因为 Web server上此资源的訪问控制列表(ACL)配置或加密设置,您无权查看此文件夹或页面。)

在IIS中  依次运行例如以下操作: 站点--编辑权限--共享(为了方便能够直接将分享对象设置为everyone)--安全(直接勾选 everyone )--应用--确定.

Java 訪问权限控制:你真的了解 protected keyword吗?

摘要: 在一个类的内部,其成员(包含成员变量和成员方法)是否能被其它类所訪问,取决于该成员的修饰词:而一个类是否能被其它类所訪问,取决于该类的修饰词.Java的类成员訪问权限修饰词有四类:private,无(默认情况下.包訪问权限),protected 和 public,而当中仅仅有包訪问权限和public才干修饰一个类(内部类除外).特别地,非常多的介绍Java的书籍对protected介绍的比較笼统,经常会对大家造成误解. 因此,本文重点揭示了 protected 关键字的内涵和使用方法,并