4、const修饰成员函数.cpp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. //4.3.4 const修饰成员函数
  2. //常函数:
  3. //⚪成员函数后加const后我们称为这个函数为常数
  4. //⚪常含数内不可以修改成员属性
  5. //⚪成员属性声明时加关键字mutable后,在长函数中依然可以修改
  6. //常对象:
  7. //⚪声明对象前加const城改对象为常对象
  8. //⚪常对象只能调用常含数
  9. #include <iostream>
  10. class Person
  11. {
  12. public:
  13. //this指针的本质 是指针常量 指针的指向是不可修改的
  14. //const Person * const this;
  15. //在成员函数后面加const,修饰的是this指向,让指针指向的值也不可以修改
  16. void showPerson() const
  17. {
  18. this->m_B = 100;
  19. //this->m_A = 100;
  20. //this = NULL; //this指针不可以修改指针的指向的
  21. }
  22. void func()
  23. {
  24. m_A = 100;
  25. }
  26. int m_A;
  27. mutable int m_B; //特殊变量,即使在常含数中,也可以修改这个量,加关键字mutable
  28. };
  29. void test01()
  30. {
  31. Person p;
  32. p.showPerson();
  33. }
  34. void test02()
  35. {
  36. const Person p; //在常对象前加const,变为常对象
  37. //p.m_A = 100;
  38. p.m_B = 100; //m_B 是特殊变量,即使在常函数中,也可以修改这个值,加关键字mutable
  39. //常对象只能调用常含数
  40. p.showPerson();
  41. //p.func(); //常对象不可以调用普通成员函数,因为普通成员函数可以修改属性
  42. }
  43. int main()
  44. {
  45. system("pause");
  46. return 0;
  47. }