zoukankan      html  css  js  c++  java
  • 3-C++程序的结构1.4

    共享数据的保护

    对于既需要共享、又需要防止改变的数据应该声明为常量。

    1、常引用

    如果在声明引用时用const修饰,被声明的引用就是常引用。常引用所引用的对象不能被更新。声明形式如下:

    const 类型说明符 &引用名;

    2、常对象

    常对象时这样的对象,它的数据成员值在对象的整个生存期间内不能被改变。也就是说,常对象必须进行初始化,而且不能被更新。声明如下:

    类名 const 对象名;

    3、用const修饰的类成员

    a、常成员函数

    使用const关键字修饰的函数为常成员函数,其格式如下:

    类型说明符  函数名(参数表) const;

    注意:

    1)const是函数类型的一个组成部分,因此在函数定义部分也要带const关键字。

    2)常成员函数不能更新对象的数据成员,也不能调用该类中没有const修饰的成员函数。

    3)如果将一个对象说明为常对象,则通过该 常对象只能调用它的常才成员函数,而不能调用其他成员函数。

    4)const关键字可以用于对重载函数的区分。

    #include<iostream>
    using namespace std;
    class R
    {
    public:
    R(int r1,int r2){R1=r1;R2=r2;}
    void print();
    void print() const;
    private:
    int R1,R2;
    };
    void R::print()
    {
    cout<<R1<<";"<<R2<<endl;
    }
    void R::print() const
    {
    cout<<R1<<";"<<R2<<endl;
    }
    int main()
    {
    R a(5,4);
    a.print();//调用void print()
    const R b(20,52);
    b.print();//调用void print() const
    return 0;
    }

    b、常数据成员

    如果一个类中说明了常数据成员,那么任何函数中都不能对该成员赋值。构造函数对该数据成员进行初始化,就只能通过初始化列表。

  • 相关阅读:
    汇编基础概念
    linux实验小结
    乐视三合一体感摄像头开发记录
    IplImage* 格式与Mat 格式的转换
    STM32关于优先级设定的理解 NVIC_SetPriority()
    "IRQn_Type" is undefined
    串口通信实验编译没有错误,但是串口调试助手收不到数据
    SecureCRT 8版本 自用备份
    Matlab使用robot Toolbox
    开篇
  • 原文地址:https://www.cnblogs.com/gary-guo/p/6214519.html
Copyright © 2011-2022 走看看