📜  C++中的const关键字(1)

📅  最后修改于: 2023-12-03 14:39:56.990000             🧑  作者: Mango

C++中的const关键字

在C++中,const关键字可以用来定义常量、函数参数、函数返回值等等。本篇文章将对C++中const关键字的使用进行介绍。

定义常量

使用const关键字可以定义常量,常量一旦定义就不能被修改。常量可以是任何基本数据类型,也可以是自定义的结构体或类。

const int PI = 3.1415926;
const int SIZE = 10;
const char* const AUTHOR_NAME = "John";

请注意,常量的值在定义时必须初始化,因为后续不能再修改它的值。

函数参数和返回值

使用const关键字定义函数参数和返回值可以提高代码的可读性和可维护性。函数参数用const修饰后,函数内部不能修改该参数的值,这可以避免一些错误的操作。函数返回值用const修饰后,表示该值不能被修改。

// 参数为const引用,表示函数内部不会修改该参数的值
void printArray(const int& arr, int size);

// 返回值为const int&,表示返回的值不能被修改
const int& max(const int& a, const int& b);
const类成员函数

使用const修饰函数成员,表示该函数不会修改对象的成员变量。这可以避免不必要的副作用,并提高代码的可读性。

class Point {
public:
    double getX() const; // 声明const成员函数
private:
    double x;
};

double Point::getX() const { // 定义const成员函数
    return this->x; // 返回x的值
}

请注意,在const成员函数中不能修改非mutable成员变量,否则会编译错误。

const指针和引用

使用const修饰指针和引用,可以避免在函数中修改变量的值,起到一定的保护作用。

int a = 10;
const int* p1 = &a; // p1指针指向的值不能被修改
int* const p2 = &a; // p2指针不能被修改,但它指向的值可以被修改
const int& r1 = a; // r1引用指向的值不能被修改
int& const r2 = a; // 不存在“引用常量”的概念,错误的写法

请注意,在函数参数和返回值中使用指针和引用时,应根据实际情况,选择是否使用const修饰。如果需要修改变量的值,就不要使用const修饰。

总结

在C++中,const关键字是一个十分有用的工具,它可以用来定义常量、函数参数、函数返回值等等。使用const修饰指针和引用,可以起到一定的保护作用,避免不必要的错误。在编写C++程序时,应充分利用const关键字,提高代码的可读性和可维护性。