zoukankan      html  css  js  c++  java
  • const关键字

    (1)const与指针---星号(*)在const之前表示指针常量,星号在const之后表示表示指向常量的指针;

    (2)const限定函数的参数---表示该参数在函数体内不可改变

    void Fun(const int Var);
    分析:上述写法限定参数在函数体中不可被改变。由值传递的特点可知,Var在
    函数体中的改变不会影响到函数外部。所以,此限定与函数的使用者无关,仅与
    函数的编写者有关。
    结论:最好在函数的内部进行限定,对外部调用者屏蔽,以免引起困惑。如可改
    写如下:
    void Fun(int Var)
    {
    const int & VarAlias = Var;
    VarAlias ....
    .....
    }

    (3)const在函数前,限定函数的值型返回值

    const int Fun1();
    const MyClass Fun2();
    分析:上述写法限定函数的返回值不可被更新,当函数返回内部的类型时(如
    Fun1),已经是一个数值,当然不可被赋值更新,所以,此时const无意义, 最
    好去掉,以免困惑。当函数返回自定义的类型时(如Fun2),这个类型仍然包
    含可以被赋值的变量成员,所以,此时有意义。

    (4)const在函数后面,限定类的成员函数,不会修改类中数据成员的值;

    class ClassName {
    public:
    int Fun() const;
    .....
    }
    注意:采用此种const 后置的形式是一种规定,亦为了不引起混淆。在此函数
    的声明中和定义中均要使用const,因为const已经成为类型信息的一部分。
    获得能力:可以操作常量对象。
    失去能力:不能修改类的数据成员,不能在函数中调用其他不是const的函数。

  • 相关阅读:
    luogu4365 秘密袭击 (生成函数+线段树合并+拉格朗日插值)
    [模板]左偏树
    luogu4166 最大土地面积 (旋转卡壳)
    bzoj3168 钙铁锌硒维生素 (矩阵求逆+二分图最小字典序匹配)
    [模板]矩阵树定理
    [模板]快速傅里叶变换(FFT)
    [模板]Min_25筛
    [模板]杜教筛
    [模板]莫比乌斯反演
    DrawerLayout—侧拉栏的使用
  • 原文地址:https://www.cnblogs.com/qfcndtt/p/2466319.html
Copyright © 2011-2022 走看看