[C++]类中的const函数与mutable

[C++]类中的const函数与mutable,第1张

[C++]类中的const函数与mutable

类中带 const 关键字的函数,叫常函数。

常函数,class 中的成员函数,承诺在函数内不会修改class 的任何成员变量,如果在常函数中修改类中的变量,则会编译报错。

但是,加 mutable 修饰的变量,常函数允许修改。

如下代码示例:

// person.hpp
#include 
using namespace std;

namespace MAN
{

class person
{
public:
	mutable string name;  // mutable 修饰的变量,常函数也可以改
	bool male;   // 没用 mutable 修饰的变量,常函数不可修改
	
	person(){};
	person(int myage);

	void AgeAdd1(void);
	int AgeGet(void) const;  //常函数
private:
	mutable int age; // mutable 修饰的变量,常函数也可以改
};

}			// end of namespace MAN


// person.cpp
// 本函数只是读取class的成员变量,并不修改,所以可以是常函数
int MAN::person::AgeGet(void) const
{
	age++;
	name = "ddd";
	return this->age;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/3970106.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-21
下一篇 2022-10-21

发表评论

登录后才能评论

评论列表(0条)

保存