????????????????const?????????????????????????????????????????????????????????????
????1 const int var = 42;
????2 int* p = (int*)&var;
????3 *p = 20;
????4 cout << var << endl;     //42
????5 cout << *p << endl;     //20
???????????????2?У?????????????????????????const???????????const????
?????????????????????????????????????????Ч????????
???????????????????????η???var????????????????????????????????var????????42???????滻??
????????const????
???????????????????????????????????const??????????????????????????????????????????2?????
????1????????????????(??mutalbe???)
????2????????????const???????
????1 class AClass{
????2     public:
????3         int m_var;
????4         mutable int m_mutable_var;
????5         void setVar(int var){ m_var = var; }
????6         void printVar(){ cout << m_var; }
????7         void printVar_const()const { cout << m_var; }
????8     };
????9
????10     const AClass ac;
????11     ac.m_var = 20; // Error??ac?????const???????????????
????12     ac.m_mutable_var = 42; // ok ???????mutable???ε????
????13     ac.setVar(20); // Error: ac??????÷?const???????????????????????????????????????
????14     ac.printVar();// Error??ac??????÷?const???????
????15     ac.printVar_const(); // ok
???????const???????
????1??const???????
????const ???????????????е?????????????????????????????????????????????
????1??const ???????????????????????????????б??????????????????????????????
????2????? const ???????????????????????岢????????????????????
1 class constTestClass
2 {
3 public:
4     const int var;
5     static const int sci;
6 public:
7     constTestClass() :var(42){} // const???????????????????????????б??г????
8 };
9 const int constTestClass::sci = 42; // static const?????????????????????ж????????
?????????????????????????????????2??裺???????????????????????????????????????????????????????????????????????????????б???г??????????й??????е???????? const ???????????????壨???????????????г????????????????????????????б??г??????const????????????????????????????????????????????????
?????????????????????????????????????????е?????????????????????????????????????????з??????????????????????????????κ????????????????????и????????????????????????????????????????????????????????????????????????????????????????????????壬????????κζ???????????????????? const ??????? ??????????????????????????????????????????
????2??const???????
????const???????????????????????????κγ????????
????1??????const?????????this???????? const ???? ?? const ???
????2??const??????????????????κγ???????????????????? mutable ???η????Ρ?
1 class constTestClass
2 {
3 public:
4     int var;
5     const int ci;
6     mutable  int mci;
7 public:
8     void setVar(int i);
9     void setMci(int i)const;
10 };
11 void constTestClass::setVar(int i)
12 {
13     var = i; // ok
14     mci = i; // ok
15     ci = i;  // Error??ci?????const?????????
16 }
17 void constTestClass::setMci(int i)const
18 {
19     var = i;    // ok
20     mci = i;    // ok  mutable????????????const??????????
21     ci = i;    // Error
22 }
?????????????????????У???????? this ???????????????????????????????????????????????CPU????????????this???????????????????????????????????????????????????????????????в??????????this?????? const??????????????????????????????????????????????????????????????
?????????const?????????this?????????const????????????const???????????????this???????????const?????const???
????mutable ???η????const??????????????Щ??????????????????????????????????????????????κ??????????
??????? const ????????????const???????????????????????????????????? const ???Σ????????????????????????const?????const?????????仰??????????????this????????const?????const????????????????this?????????????const?????????????????????????????е??á??? const ???????????this??????? ???const?????const????????????????á?