C++——const关键字的作用

定义变量

C:

局部const:栈区,可以通过指针修改

全局const:静态储存区,不能用指针修改,会报错,C/C++都不能修改

指针:

        char* const ptr:常量指针,指针不能修改,ptr = astr;ptr = bstr;//报错,这个指针只能指这个常量(值)

        const char* ptr:指针常量,这个类型的内容不能改,const char* ptr = "hello world";//指针指向的这块内存的值(hello world)不能修改,ptr[0] = 'a';//报错

C++:

会把变量加载到符号表中,可以用指针修改,只能在表中获取,但不一定成功

作用

1.避免修改

2.避免多次分配内存

#define var 100;//替换(编译期)
int a,b;
//都需要分配内存,本质是进行两次分配,100替换
a =var;
b = var;
----------------------------------------------
const int var = 100;
a = var;//只会分配一次,var是常量
b = var;

3.编译期可以进行类型检查,作用域检查,define只做替换,不会检查

修饰函数参数 

void func(const T&a)//不能修改a的值

修饰函数返回值

//C++运算符重载
class A{
public:
    const A operator+(const A&a){
        //不希望产生a+b=c,返回值不能修改,不是左值,a+b作为左值,c赋值给a+b
    }
};

类中常成员函数

确保不修改成员变量

class B
{
public:
    void func() const{//常成员函数只能调用类的常成员变量
                      //常量对象,const修饰的对象时,常量对象只能访问常成员函数                                                  
                     }
    void func(){}
    
};
//只读对象,只能调用常成员函数,不能调用非常成员函数
//常成员函数只能调用常成员变量以及常成员函数

作用:

1.避免修改成员变量

2.函数重载

B a;
a.func();

const B b;
b,func();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值