zoukankan      html  css  js  c++  java
  • 访问控制

    public: 之后的成员在整个程序内可被访问

    private:之后的成员可以被类的成员函数访问,但不能被使用该类的代码访问,private部分封装(隐藏)类的实现细节

    一般数据成员和作为实现部分的函数跟在private之后。成员函数在调用时会隐式地增加 this 指针,指向调用它的对象,从而使用该对象的成员;

    (class 和struct 区别:struct 和 class的默认访问权限不同,类在第一个访问说明符之前的成员是public的,而class是private的)

    公有成员函数提供类与外界的通信接口。但是有时需要定义一些函数,不是类的成员,但又频繁的访问类的私有成员,可以将这些类定义为友元函数。

    友元: friend

       类允许其他类或函数访问其非公有成员,方法是令其他类或函数成为它的友元。

    read, print ,add函数不是类的成员,把函数作为友元,只要在增加一条以friend 关键字开始的函数声明语句。

     

    友元声明只能出现在类定义的内部,友元不是类的成员,也不受它所在区域访问控制级别的约束。友元声明仅仅指定了访问的权限,而非一个通常意义上的函数声明。如果希望用户能条用某个友元函数,需要在友元声明之外再专门对函数进行一次声明。友元函数在调用时会隐式地增加 this 指针,指向调用它的对象,从而使用该对象的成员;

     也可以使用友元类:

    friend class <友元类名>;

    关于友元,有两点需要说明:

    • 友元的关系是单向的而不是双向的。如果声明了类 B 是类 A 的友元类,不等于类 A 是类 B 的友元类,类 A 中的成员函数不能访问类 B 中的 private 成员。
    • 友元的关系不能传递。如果类 B 是类 A 的友元类,类 C 是类 B 的友元类,不等于类 C 是类 A 的友元类。
  • 相关阅读:
    设计模式-Note9-行为变化类
    设计模式-Note8-数据结构类
    设计模式-Note7-状态变化类
    设计模式-Note6-接口隔离类
    设计模式--Note5--对象性能类
    设计模式--Note4--对象创建类
    设计模式--Note3--单一职责类
    设计模式--Note2--组件协作类
    V$ACCESS 查询结果慢的解决方法
    openstack numa详解(命令使用篇)
  • 原文地址:https://www.cnblogs.com/fanhaha/p/7096227.html
Copyright © 2011-2022 走看看