const总结


  1. 成员函数可以声明成const函数(声明后加const)
  2. 对于const对象,只能调用const成员函数
  3. Const函数和非const函数可以形成重载
  4. 对于非const对象的函数调用优先选择非const成员函数
  5. 对于类中的mutable数据成员,可以被const成员函数修改
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class A
{
int val;
public:
A(int x) :val(x){};
int ()(int x) const
{

cout << "aa" << endl;
return val * x;
}

int ()(int x)
{

cout << "bb" << endl;
return val * x;
}

};

int main()
{
A const a(5);
cout << a(2) << endl;
A b(5);
cout << b(2) << endl; // 调用非const函数,输出“bb”
}