C++ const使用注意事项

const数据成员的初始化方式

  1. 使用类内值(C++11支持)
class Human {
public:
    Human();
   ~ Human();
private:
	const int  Age =18;
};

  1. 使用构造函数的初始化列表
Human::Human():Age(18) {
     ......
}

(如果同时使用这两种方式,以初始化列表中的值为最终初始化结果)

注意: 不能在构造函数或其他成员函数内,对const成员赋值!

如果一个成员函数内部,不会修改任何数据成员,就把它定义为const成员函数。

const成员函数内,不能修改任何数据成员!

C++的成员函数设置建议:

如果一个对象的成员函数,不会修改任何数据成员,那么就强烈:

把这个成员函数,定义为const成员函数!

易错点:
非const引用, 不能对const变量进行引用。

注意: const引用, 可以对非const变量进行引用。如下图。
在这里插入图片描述
示例代码:

#include <iostream>
#include <windows.h>

using namespace std;

class Man {
public:
	Man() {}
	void play() const {
		cout << "I am playing ...." << std::endl;
	}
};

void play(const Man &man) {
	man.play();
}
void asment(Man &man) {
	man.play();
}
int main(void) {
	const Man man;
	play(man);  //const引用对象引用const对象
   // asment(man); //自由引用对象,引用const对象,错误
	Man man1;
	play(man1); //const引用对象引用非const对象
	asment(man1);  //自由引用对象,引用非const对象
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值