C++中关键字const的用法

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

1. 定义常量

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

#define M 15
const int N = 15;

const 修饰的变量只能在定义位置修改值,其他地方不能对其值进行更改。
注:宏定义是一种不做任何语法性检查的替换,而 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 ,那么编译器就会报错。
下面就 const 变量和 const 函数之间使用规则进行说明。
表格
const 变量可以调用 const 成员函数和 non-const 成员函数,但 non-const 变量只能调用 non-const 成员函数,不能调用 const 成员函数。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值