C++之常函数、常对象

常函数:

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

常对象:

1.声明对象前加const称该对象为常对象
2.常对象只能调用常函数,但可访问成员变量

class Person {
public:
	Person() {
		m_A = 0;
		m_B = 0;
	}
	//this指针的本质是一个指针常量,指针的指向不可修改
	//如果想让指针指向的值也不可以修改,需要声明常函数
	void ShowPerson() const {
		//const Type* const pointer;
		//this = NULL; //不能修改指针的指向 Person* const this;
		//this->mA = 100; //但是this指针指向的对象的数据是可以修改的
		//const修饰成员函数,表示指针指向的内存空间的数据不能修改,除了mutable修饰的变量
		this->m_B = 100;
	}
	void MyFunc() const {
		//mA = 10000;
	}
public:
	int m_A;
	mutable int m_B; //可修改 可变的
};

//const修饰对象  常对象
void test01() {
	const Person person; //常量对象  
	cout << person.m_A << endl;
	//person.mA = 100; //常对象不能修改成员变量的值,但是可以访问
	person.m_B = 100; //但是常对象可以修改mutable修饰成员变量
	//常对象访问成员函数
	person.MyFunc(); //常对象不能调用const的函数
}

int main() {
	test01();
	system("pause");
	return 0;
}

相关推荐

  1. C++函数对象

    2024-03-30 12:32:01       42 阅读
  2. C#--StreamWriter和StreamReader对象函数

    2024-03-30 12:32:01       37 阅读
  3. c# 用基本函数

    2024-03-30 12:32:01       65 阅读
  4. C++八股文 002:函数

    2024-03-30 12:32:01       69 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-30 12:32:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-30 12:32:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-30 12:32:01       82 阅读
  4. Python语言-面向对象

    2024-03-30 12:32:01       91 阅读

热门阅读

  1. C 传递指针给函数

    2024-03-30 12:32:01       37 阅读
  2. Django vs Flask:选择最适合你的Python Web框架

    2024-03-30 12:32:01       37 阅读
  3. 应急响应流程与挖矿病毒排查流程

    2024-03-30 12:32:01       37 阅读
  4. <商务世界>《第28课 商务旅行的注意事项》

    2024-03-30 12:32:01       43 阅读
  5. 【神经网络模型】——AI大模型学习

    2024-03-30 12:32:01       40 阅读
  6. CC攻击l

    2024-03-30 12:32:01       34 阅读
  7. Hive详解(4)

    2024-03-30 12:32:01       42 阅读
  8. c++类,矩形面积计算

    2024-03-30 12:32:01       39 阅读
  9. 新能源汽车消费者购车习惯调查方案

    2024-03-30 12:32:01       41 阅读