-
常函数
- 1.在函数的()后面加上const,这个函数就是常函数
- 2.常函数内不能修改普通成员变量
- 3.const修饰的是this指针指向的空间中的变量不能改变
- 4.mutable修饰的成员变量在常函数中可以修改
-
class Maker { public: Maker(int id, int age) { this->age = age; this->id = id; score = 200; } //常函数,1.函数的()后面添加const,该函数是常函数 void printMaker()const { //id = 100;err//2.常函数内不能修改普通成员变量 //3.const修饰的是this指针指向的空间中的变量不能改变 //Maker *const this; //const Maker*const this;这是常函数修饰的 score = 200;//4.mutable修饰的成员变量在常函数中可以修改 cout << "score=" << score << endl; } private: int id; int age; mutable int score; };
-
常对象
- 1.在数据类型前面加上const,让对象成为常对象
- 2.常对象不能改变普通成员变量的值
- 3.常对象不能调用普通成员函数
- 4.常对象可以调用常函数
- 5.常对象可以修改mutable修饰的成员变量
- 6.普通对象也可以调用常函数
-
class Maker { public: Maker(int id, int age) { this->id = id; this->age = age; score = 100; } //常函数 void printMaker()const { score = 200; cout << "score=" << score << endl; } void func() { cout << "func" << endl; } public: int id; int age; mutable int score;//mutable修饰的成员变量 }; void test() { //1.在数据类型前面加上const,让对象成为常对象 const Maker m(1, 18);//常对象 //m.id = 100 //2常对象不能改变普通成员变量的值 //m.func(); //3.常对象不能调用普通成员函数 m.printMaker();//4.常对象可以调用常函数 m.score = 500;//5常对象可以修改mutable修饰的成员变量 Maker m2(2, 20); m2.printMaker();//6普通对象也可以调用常函数 }
常函数和常对象
于 2023-05-13 21:14:16 首次发布
文章讲述了C++编程中常量成员函数的概念,强调了常函数不能修改普通成员变量,但可以修改mutable修饰的变量。同时介绍了常对象的特性,常对象不能改变其普通成员变量,不能调用非常量成员函数,但可以调用常量成员函数并修改mutable变量。
摘要由CSDN通过智能技术生成