• 5.数据的共享和保护


    第五章 数据的共享和保护

    5.1标识符的作用域和可见性

    可见性:标识符是否可以引用的问题

    作用域:是标识符的有效范围

    ① 函数原型作用域:函数原型中的参数

    ② 局部作用域:从声明处开始,到块结束的右大括号

    ③ 类作用域:类的成员具有类作用域

    命名空间作用域(具有命名空间作用域的变量也称为全局变量

    5.2对象的生存期

    ①静态生存期:

    ·与程序的运行期相同

    ·在命名空间作用域中声明的对象具有

    ·在函数内部声明的静态生存期对象要加static

    ②动态生存期:

    ·局部作用域中声明的对象具有(局部生存期对象)

    5.3类的静态成员

    ·用static声明

    ·该类的所有对象维护该成员的同一个拷贝

    ·必须在类外定义和初始化,用::指明所属类

    静态成员函数:

    ·类外代码可以使用类名和作用域操作符::来调用静态成员函数

    ·只能引用属于该类的静态数据成员或静态成员函数

    5.4类的友元

    ①友元函数:是在类声明中由friend修饰说明的非成员函数

    在它的函数体中,能通过对象名访问private和protected成员

    1. 普通函数

    2. 其他类的成员函数(可以通过它访问另一个类中的成员)

    ②友元类:若类B为类A的友元,则类B的所有成员都能访问类A的private和protected成员

    注意:友元关系:①不能传递②单向③不被继承

    5.5共享数据的保护

    ①常对象 :例:const A a(3,4);

    数据成员的值,在对象的整个生存期间不能被改变,必须进行初始化,且不能被更新

    ②用const修饰的类成员:常成员函数 、 常数据成员 (const可以区分重载函数)

    常成员函数不能更新目的对象的数据成员,通过常对象只能调用常成员函数,其他函数不行

    ③常引用

    被引用的对象不能被更新,可以绑定到 普通对象 或 常对象(非const引用不能)。

  • 相关阅读:
    jQuery弹出层插件大全:
    JavaScript数组去重的几种方法
    sql去除重复列(行)
    VS无法启动调试
    .将DayOfWeek转换成中文的几种方式
    关于 uniqueidentifier
    链接服务器
    我的目标:系统架构师
    异常(1)
    Visual C++开发工具与调试技巧整理
  • 原文地址:https://www.cnblogs.com/GraceSkyer/p/6230733.html
Copyright © 2020-2023  润新知