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、常数据成员

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

  • 相关阅读:
    牛客多校第一场 A Equivalent Prefixes 单调栈(笛卡尔树)
    HDU多校第三场 Hdu6606 Distribution of books 线段树优化DP
    (待写)
    Hdu6586 String 字符串字典序贪心
    2019HDU多校第一场1001 BLANK (DP)(HDU6578)
    iOS触摸事件
    iOS获取相册/相机图片-------自定义获取图片小控件
    自定义表情输入框
    iOS版本、iPhone版本、Xcode版本比对
    Swift备忘录
  • 原文地址:https://www.cnblogs.com/gary-guo/p/6214519.html
Copyright © 2011-2022 走看看