常函数:

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

    常对象:

    • 声明对象前加const称该对象为常对象
    • 常对象只能调用**常函数**
    1. #include <bits/stdc++.h>
    2. using namespace std;
    3. class Person{
    4. public:
    5. Person(int num,int age):m_Num(num),m_Age(age){
    6. cout << "Person参数列表的构造" << endl;
    7. }
    8. void showPerson() const{
    9. this->m_Age = 20;
    10. }
    11. ~Person(){
    12. cout << "Person析构函数的调用" << endl;
    13. }
    14. public:
    15. int m_Num;
    16. mutable int m_Age;
    17. };
    18. Person func(Person per){
    19. return per;
    20. }
    21. int main(){
    22. Person person2(10,30); // 括号法调用有参构造函数
    23. cout << "m_Num = " << person2.m_Num << endl;
    24. cout << "m_Age = " << person2.m_Age << endl;
    25. person2.showPerson();
    26. cout << "m_Age = " << person2.m_Age << endl;
    27. return 0;
    28. }