C++ const

  const作为C语言中的关键字,被它修饰的变量是不允许改变,它把一个对象转换成一个常量(俗称:常量化)。

 

一、const修饰普通变量

1 const int a = 1; //定义一个const修饰的整型变量
2 
3 a = 2 //error -->不能被修改
4 
5 int b = a;  //为其他变量赋值可以

从这里可以看出,const其实只限定变量a所对应内存的值不能被修改。

 

二、const修饰指针

 1 int a = 1;
 2 
 3 const int *p = &a;  //const修饰p所指向的内存
 4 
 5 *p = 2 // 编译失败
 6 
 7 int * const q =&a; //const修饰指针所在的内存,指针本省不能被修改
 8 
 9 *q = 3;
10 
11 int b = 4;
12 
13 q = &b; //编译失败,此时指针本身不能被修改
14 
15 cout << a << endl; 
16 
17 //输出为3

 

三、修饰函数参数

#include <iostream>

using namespace std;

void func(const int a, int b)
{
    a = 3; //编译失败, 被const修饰的函数参数不能修改
    b = 4;
    cout <<a<< endl;
    cout <<b<< endl;
    
}

int main()
{
    int a = 1;
    int b = 2;
    func(a, b);
    return 0;
}

 

四、修饰成员函数

 

class A
{
public:
         //默认构造函数
    A()
    {
        a = 0;
        b = 0.1;
    }

    void func() const
    {
        a = 2;    //编译失败
        b = 2.1; //编译失败

    }

private:
    int a;
    double b;
};

 

posted @ 2018-08-07 22:13  Amdeo  阅读(68)  评论(0)    收藏  举报