栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++中const的用法

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++中const的用法

C++中const的用法

const一般在C++的以下三种情况中使用。

一、定义常量

const在英语中就有常量的意思,其最基本的作用就是定义常量。定义的常量值无法被修改。

例如以下代码会报错。

#include 

int main()
{
    const int a = 5;
    a = 2;

    return 0;
}

然而事实上是,C++中的const定义常量只能算是一个“承诺”,这个地方的值是可以通过其他方法修改的。比如下面的例子。

#include 

int main()
{
    const int a = 19;
    int *b = (int*)&a;
    *b = 9;
    std::cout << *b << std::endl;

    return 0;
}
二、指针相关
  • const可以设置不能修改指针指向位置的值。

    例如以下代码第六行是可以通过编译的,第七行就会报错。

    #include 
    
    int main()
    {
        const int* a = new int;
        a = new int;
        *a = 2;
    
        return 0;
    }
    
    

    有些时候也有另一种表达方式,效果是一样的。

    int const*
    
  • 定义“指针常量”,定义完成后,该指针的值无法被修改。

    以下代码在第七行会报错,此时const关键字的位置是在变量类型int之后。

    #include 
    
    int main()
    {
        int* const a = new int;
        *a = 2;
        a = new int;
    
        return 0;
    }
    
三、const在类中的使用

类的方法后面加上const关键字代表此方法不能修改成员变量的值。

比如以下代码,在第九行就会报错,因为此方法被定义为不能修改x的值。

#include 

class A
{
public:
    int x;
    void changeX() const
    {
        x += 1;
    }
};

int main()
{
    A* a = new A;
    a->changeX();

    return 0;
}

但是关键字mutabel 可以给成员变量’“特权”,让其可以被修改。

#include 

class A
{
public:
    mutable int x, y;
    void changeX() const
    {
        x += 1;
    }
};

int main()
{
    A* a = new A;
    a->changeX();

    return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/990304.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号