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的函数。

  • 相关阅读:
    Electron中git, npm,webpack使用
    Luogu_2061_[USACO07OPEN]城市的地平线City Horizon
    Luogu_1080_国王游戏
    Luogu_2878_[USACO07JAN]保护花朵Protecting the Flowers
    GYOJ_1812_股票(stock)
    JXJJOI2018_三题
    JXJJOI2018_T3_catch
    JXJJOI2018_T1_market
    JXJJOI2018_T2_tank
    Luogu_2876_[USACO07JAN]解决问题Problem Solving
  • 原文地址:https://www.cnblogs.com/qfcndtt/p/2466319.html
Copyright © 2011-2022 走看看