Const in C++【C++学习笔记】

Const in C++

const更像一个假的关键词,因为它实际上在生成代码的时候并没有做什么。这是一种针对开发人员写代码的强制规则

const的作用:相当于你做出承诺某些东西是不变的,不会改动的(但这只是一个承诺)

用法

最简单的用法:

const int MaxAge = 90;
对于指针:
  • 💡对指针const int*表示不能修改指针指向的内存地址的内容了,但是可以修改指针的指向

    const int* a = new int;	//表示不能修改指针指向的内存地址的内容了
    int b = 1;
    *a = 1;	//错误操作
    a = &b;	//正确操作
    //const只是让指针不能修改指向的内存地址的内容,但是指针指向的内存地址还是可以改变!!!
    
  • 💡而对指针int* const ,则功能与上面完全相反,表示不能修改指针的指向,但是可以修改指向的内存地址的内容

    • 关键在于*在前面还是在后面
    • 星号*在前面,则是要让指针变成常量,使它不能被重新分配,但可以修改它指向的内容(const指针)
    • 星号*在后面,则是让它可以被重新分配,但是不能修改指向的内容
  • 顺便一说const int* const这种两个const的,代表指针既不能改指向,也不能改指向的内容

💡由C++Primer知,当前缀五花八门时,从右向左阅读有助于理解真实含义

  • const int* a指向整型的常量指针,不能修改指向内容
  • int *const a常量指针指向一个 int 对象
  • const double *const pip = &pi一个常量指针,它指向的对象是一个双精度浮点型常量
对于类:
  • 放在方法名的后面(只有类里才能这么用)

    • 这种做法意味着:这个方法不会修改任何实际的类(故下面是不能修改类的成员变量的),意味着这只是一个只读的方法,只能从类中读取数据,不能修改数据
    class Entity
    {
    private:
    	int m_X, m_Y;
    public:
        int GetX() const
        {
            m_X = 2;	//❌这个是错误做法!!!
            return m_X;
        }
    }
    
  • 定义一个常量的对象: const Entity e

    • 这个常量的对象只能使用常量的方法,比如它只能使用上面的Getx()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值