c++ const的用法详解

const是C++中的一个关键字,用于声明常量并可应用于变量、数组、指针和函数参数等。文章介绍了const修饰基本数据类型时的不同情况,如指针常量、常量指针和同时修饰指针及对象的情况。此外,还讲解了const在修饰函数返回值、参数以及成员函数时的作用,包括保护返回值不被修改、保证参数不被修改以及限制const成员函数的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概念

const是一个关键字,用于声明常量和指定函数参数、函数返回值等为常量。

二、const的使用

1、const修饰基本数据类型

1.1、const修饰一般变量及数组
    int const a1 =100;
    const int a2=200;
    char const arr1[3]={1,2,3};
    const char arr2[3]={4,5,6};
    a1=20;              //error
    a2=30;              //error
    arr1[0]=9;          //error
    arr2[2]=10;         //error
1.2、const修饰指针(*)
  • 指针常量(修饰指针)
int value = 10;
int* const ptr = &value;
*ptr = 20;  	// 通过指针修改值
ptr = nullptr;  // 不能修改指针指向的地址
  • 常量指针(修饰指针指向的对象)
int value = 10;
int valueB = 20;
const int* ptr = &value;
value = 20;  // 可以通过原始变量修改值
//*ptr = 30;   // 不能通过指针修改值
ptr = &valueB; //可以指向其他的对象
  • 同时修饰指针本身和指针所指向的对象
const int value = 10;
const int* const ptr = &value;
*ptr = 20;  // 不能通过指针修改值
ptr = nullptr;  // 不能修改指针指向的地址

2、const修饰函数

const int func(const int a,const intb) const;
2.1、const 修饰函数返回值

表示返回的值是一个常量。这样的函数可以返回一个常量值,保护返回值不被修改。

class MyClass {
private:
    int value;

public:
    const int getValue() {
        return value;  // 返回一个常量值
        			   //需要使用const 修饰的对象接收
    }
};
2.2、const修饰函数的参数
  • 常量参数表示函数不会修改该参数的值。
  • 常量参数可以接受常量值、非常量值以及字面值作为参数。
  • 在函数内部,常量参数的值不能被修改。
void printValue(const int num) {
    // 不能修改num的值
    cout << num << endl;
}
2.3、const修饰成员函数
  • const函数不能修改成员变量的值。

  • const对象只能访问const成员函数,非const的对象可以访问任何成员函数。

  • 常量成员函数只能调用其他常量成员函数和常量对象,不能调用非常量成员函数。

  • 常量成员函数内部不能修改类的成员变量,除非该成员变量被声明为mutable

  • 如果两个函数仅常量性不同是可以构成重载的。

class MyClass {
private:
    int value;

public:
    int getValue() const {
        return value;  // 可以读取成员变量
    }

    void setValue(int newValue) {
        value = newValue;  // 可以修改成员变量
    }
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值