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

  • 相关阅读:
    [匈牙利算法] 洛谷 P1640 连续攻击
    [dfs] Jzoj P5916 flow
    [bfs] Jzoj P3522 迷宫花园
    [二分][状压dp] Jzoj P3521 道路覆盖
    [模拟] Jzoj P3520 原根
    [并查集] Jzoj P5914 盟主的忧虑
    [树上差分][子树求和][树形dp] Jzoj P5911 Travel
    [思维][暴力] Jzoj P5912 VanUSee
    [dfs][离散化] Jzoj P5910 DuLiu
    [cdq分治][树的重心] 洛谷 P3806 点分治1
  • 原文地址:https://www.cnblogs.com/qfcndtt/p/2466319.html
Copyright © 2011-2022 走看看