首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++中const声明的区别

在C++中,const关键字用于声明一个常量,即其值在初始化后无法被修改。const可以用于修饰变量、指针、引用、成员函数等。下面详细介绍const的几种声明方式及其含义。

  1. 修饰基本类型

const修饰基本类型时,表示该变量为常量,不能进行修改。例如:

代码语言:cpp
复制
const int a = 10;
a = 20; // 编译错误,不能修改常量的值
  1. 修饰指针

const可以修饰指针,分为指向常量的指针和常量指针。指向常量的指针表示该指针指向的对象不能被修改,例如:

代码语言:cpp
复制
int a = 10;
const int* p1 = &a; // 指向常量的指针
*p1 = 20; // 编译错误,不能通过指向常量的指针修改对象的值

常量指针表示该指针本身是一个常量,即指针的地址不能被修改,例如:

代码语言:cpp
复制
int a = 10;
int b = 20;
int* const p2 = &a; // 常量指针
p2 = &b; // 编译错误,不能修改常量指针的值
  1. 修饰引用

const可以修饰引用,表示该引用所引用的对象不能被修改。例如:

代码语言:cpp
复制
int a = 10;
const int& r = a; // 引用常量
r = 20; // 编译错误,不能通过引用常量修改对象的值
  1. 修饰成员函数

const可以修饰成员函数,表示该成员函数不会修改类的成员变量。例如:

代码语言:cpp
复制
class MyClass {
public:
    int a;

    MyClass(int a) : a(a) {}

    int getA() const {
        return a;
    }

    void setA(int a) {
        this->a = a;
    }
};

MyClass obj(10);
cout<< obj.getA()<< endl; // 输出10
obj.setA(20);
cout<< obj.getA()<< endl; // 输出20

在上面的例子中,getA()函数被声明为const,表示该函数不会修改类的成员变量,因此可以通过const引用或指针调用该函数。而setA()函数没有被声明为const,因此只能通过非const引用或指针调用该函数。

总之,const在C++中有多种声明方式,用于声明常量、指针、引用和成员函数等。通过使用const,可以提高代码的安全性和可维护性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

1分24秒

Windows和Linux平台的逆向,有很大区别吗?【C++/病毒/内核/逆向】

16分10秒

07. 尚硅谷_AngularJS_声明式和命令式的区别,依赖注入.avi

5分17秒

199-尚硅谷-Scala核心编程-变量声明中的模式使用.avi

30分51秒

PHP7.4最新版基础教程 5.字符串的声明及区别 学习猿地

3分15秒

55.枚举类型处理器中是否带Ordinal的区别.avi

2分35秒

146_尚硅谷_MySQL基础_演示delete和truncate在事务中的区别

2分35秒

146_尚硅谷_MySQL基础_演示delete和truncate在事务中的区别.avi

29分44秒

Web前端 TS教程 09.TypeScript中对象和函数的类型声明 学习猿地

2分5秒

一分钟快速了解WDM波分技术中CWDM和DWDM的区别

-

即将商用的5G消息,你了解多少?它和普通的5G有什么区别? 中

1分11秒

企业微信群机器人可以发什么类型的消息?

6分6秒

普通人如何理解递归算法

领券