const成员变量:
1. 必须在类内部初始化
2. 非static的可以在初始化列表中初始化
#include <iostream> class Student { public: const int m_age; Student(int age = 10) : m_age(10) {} }; int main(void) { Student s = Student(); std::cout << s.m_age; return 0; }
const成员函数:
1. const写在)后边 ,{前面
2. 声明和定义都要const
3. 内部不能修改非static成员变量的值
4. 只能调用const成员函数,static成员函数
5. 非const成员函数可以调用const成员函数
6. const成员函数和非const成员函数构成重载
7. 非const对象(对象指针)优先调用非const成员函数
8. const对象(对象指针)只能调用const成员函数,static成员函数
#include <iostream> class Student { public: void func(); void func() const; }; void Student::func() { std::cout << "非const成员函数" << std::endl; } void Student::func() const { std::cout << "const成员函数" << std::endl; } int main(void) { Student s = Student(); const Student cs = Student(); s.func(); cs.func(); return 0; }