C++中关键字const的用法

const 是C++的一个关键字,现在对它的用法做一个小结。

1. 定义常量

在C中,如果要频繁的使用某一个常量,可以利用宏定义来利用一个符号定义这个常量,以后用到这个常量的地方就用这个符号代替即可,这样修改这个常量的值也方便了很多。在C++中,我们可以利用 const 替代宏定义,具体代码如下:

#define M 15
const int N = 15;

宏定义是一种不做任何语法性检查的替换,而 const 可以进行类型检查。

2. 函数参数包含const

首先要明确,在C++中,参数传递可以传值,也可以传引用。过去C中可以传指针,而传引用底层就是传指针的效果。所以,当参数所占内存较大时,传引用相较传值而言,就高效了很多。所以,C++中,推荐使用传引用操作。而在传引用时,如果不希望函数改变传入的实参,就可以添加关键字 const 。示例代码:

class complex{
public:
	...
	complex& operator += (const complex&);
	...
private:
	double re, im;
};

3. 函数返回值包含const

同函数参数一样,在C++中,函数返回值传递可以传值,也可以传引用。类似,C++中,推荐使用传引用操作。而在传引用时,如果不希望函数返回值被改变,就可以添加关键字 const 。示例代码:

const int& add(int, int&);

4. 常量成员函数

在类中,如果一个函数不会改变类的数据,那么可以把这个函数声明成常量成员函数。示例代码:

class complex{
public:
	...
	double real() const { return re; }
	double imag() const { return im; }
	...
private:
	double re, im;
};

const 表示该函数不会改变类中的数据。为什么最好要加 const 呢?

const complex c1(2, 1);
cout << c1.real();
cout << c1.imag();

原因是假如我们在程序中这样定义了一个对象并且调用这两个函数,而这假设类中两个函数没有加 const ,那么编译器就会报错。

猜你喜欢

转载自blog.csdn.net/qq_35481167/article/details/83656448