C++ 常函数和常对象

#include <iostream>

using namespace std;


/************************************************************************

常函数:
1.成员函数后加const后,称该函数为常函数;
2.常函数内不可修改成员属性;
3.成员属性声明时加上mutable关键字后,在常函数中依然可以修改;

常对象:
1.声明对象前加const称为常对象;
2.常对象只能调用常函数;

/************************************************************************/

class Person{
public:
	
	Person(int age, int height):m_height(height)
	{
		this->m_age = age;
	}

	int get_age_value() const
	{

		//m_age  = 40; 常函数内不能修改成员变量
		return m_age;
	}
	
	int get_height_value() const
	{
		
		m_height  = 190; //成员属性前面加mutable关键字后,常函数内可以修改该成员变量
		return m_height;
	}

	int get_value()
	{
		return m_height;
	}

private:
	
	int m_age;
	mutable int m_height;
};


void test1()
{
	Person per(20, 166);
	cout<<"age:"<<per.get_age_value()<<endl;
	cout<<"height:"<<per.get_height_value()<<endl;

	const Person per1(30, 150);
	cout<<"age:"<<per1.get_age_value()<<endl;
	cout<<"height:"<<per1.get_height_value()<<endl;}

	//per1.get_value(); 常对象只能调用常函数


int main()
{

	test1();

	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值