C++中的const

C++中的const

const
C++定义一个常量. const int AA = 10;

  ##修饰 成员变量:
  	有些属性,一经初始化 就不在允许改动,比如 性别 证件号 

  class person {
  public:
  	const int id;		//只允许初始化一次,以后再也不会改动了
  	const string sex;	//在哪里初始化--##只能在构造 ###
  	string name;
  	int age;
  
  	person(string sex,int id,string name) 
  	{  
  		this->sex=sex;  this->id=id; this->name=name;
  	}
  
  	void show() {    }
  };

#include<iostream>
using namespace std;

class person {
public:
	const int id;		//只允许初始化一次,以后再也不会改动了
	const string sex;	//在哪里初始化--####只能在构造 ###
	string name;
	int age;

	person(string xsex,int xid,string xname) : id(xid),sex(xsex)
	{  
		cout<<"in person(sex,id,name)"<<endl;
		//this->sex=sex;  this->id=id;    报错,因为程序不允许改动const常量
		//								  const int aa=4; 以前 定义的时候赋值,编译器搞定的
		//										aa=8;	程序动态改变,不允许的
		//初始化const成员只能在 构造函数的 初始化列表中实现,而且要求 每个构造必须初始化所有的const
		this->name=xname;
	}
	
	//person() {} 非法,编译器要求所有的构造 必须初始化所有 const成员
#if 0	
	void set_sex(string sex)
	{
		this->sex=sex;  //编译器报错,不允许的操作
	}
#endif
	void show()  const
	{ 
		cout<<"id="<<id <<" sex="<<sex<<" name="<<name<<endl;   
		//age = 2;  非法,const函数不能试图修改任何成员
	}

	void set_name(string name){	this->name=name;  }

	/*修饰函数
		有时候我们期望 某个函数不要改动任何东西,为了彻底的保证 他不改动任何成员
		我们使用const修改该函数.   编译器一旦发现const函数试图改变任何成员,就报错.
		
		返回值 函数名(参数) const { 函数体 ;}
	*/
	
};


int main()
{
	person  xiaowang("man",22070401,"xiaowang");
	 
	xiaowang.show();
}
  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小镇春风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值