(十一) const的作用

  1. 修饰变量,说明该变量不可以被修改
  2. 修饰指针,即常量指针和指针常量
  3. 常量引用,经常用于形参类型,既避免了拷贝,又避免了函数对值的修改
  4. 修饰类的成员函数,说明该成员函数内不能修改成员变量
  5. // 类
    class A
    {
    private:
        const int a;                // 常对象成员,只能在初始化列表赋值
    public:
        // 构造函数
        A() : a(0) { };
        A(int x) : a(x) { };        // 初始化列表
     
        // const可用于对重载函数的区分
        int getValue();             // 普通成员函数
        int getValue() const;       // 常成员函数,不得修改类中的任何数据成员的值
    };
     
    void function()
    {
        // 对象
        A b;                        // 普通对象,可以调用全部成员函数、更新常成员变量
        const A a;                  // 常对象,只能调用常成员函数
        const A *p = &a;            // 常指针
        const A &q = a;             // 常引用
     
        // 指针
        char greeting[] = "Hello";
        char* p1 = greeting;                // 指针变量,指向字符数组变量
        const char* p2 = greeting;          // 常量指针即常指针,指针指向的地址可以改变,但是所存的内容不能变
        char const* p2 = greeting;          // 与const char* p2 等价
        char* const p3 = greeting;          // 指针常量,指针是一个常量,即指针指向的地址不能改变,但是指针所存的内容可以改变
        const char* const p4 = greeting;    // 指向常量的常指针,指针和指针所存的内容都不能改变,本质是一个常量
    }
     
    // 函数
    void function1(const int Var);           // 传递过来的参数在函数内不可变
    void function2(const char* Var);         // 参数为常量指针即指针所指的内容为常量不能变,指针指向的地址可以改变
    void function3(char* const Var);         // 参数为指针常量
    void function4(const int& Var);          // 参数为常量引用,在函数内部不会被进行修改,同时参数不会被复制一遍,提高了效率
     
    // 函数返回值
    const int function5();      // 返回一个常数
    const int* function6();     // 返回一个指向常量的指针变量即常量指针,使用:const int *p = function6();
    int* const function7();     // 返回一个指向变量的常指针即指针常量,使用:int* const p = function7();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值