C++????Щ?£?const?÷??????
???????????? ???????[ 2014/6/10 11:30:03 ] ????????C++ net
???????const??????
?????????????????????????????????????????????????????????????????????????????е???????????????????????????????????????????????????????????const????????????????????????????????????const?????á?
????????????????????????const?????(????)???????????????????????????????ò?????????????????ò??????????????????????
????1 const int ci = 1024;
????2 const int &r1 = ci;
????3 r1 = 42; // Error??r1????????????
????4 int & r2 = ci; //Error??????????????????????????????????
?????????????????????????????????????????????£???????????
????double dval = 3.14;
????int& ri = dval; // Error???????double???????????int&?????????(????????)
??????????????β??У?
???????ri?????????int?????????????ri????????????????????????dval??????????????????????????????????????ri????????????????????????????????????????
????double dval = 3.14;
????int temp = dval;
????int& ri = temp;
????????temp????????????????ri???????????????????ri??????????и??davl?????????????????????Ч???
??????????????????????double???????????int&?????????????????????и???????????????????????????????????????????п??????????????????????????κ?????
????double dval = 3.14;
????const int& ri = dval;
?????????????ri??????????????????????????ri???dval????????????dval?????int?????С?
?????塢const?????
?????????????????????ò??????????????????????????????????????????岢?????????????????????????????????????????????const?????????"????const"??
???????????????????????????????????const???????????????е?????????????á?
???????????????????????????????1???
????1????????????const?????????????????const????????
????2????????????const??????????????????const????????
????3??????????const?????????????????const????????
????4????????????const??????????????????const????????
1 int var;
2 const int ci = 42;
3
4 int *p1 =& var;
5 int *p2 = &ci; // Error??const int* ????????????int*
6 const int *p3 = &var; //ok
7 const int *p4 = &ci; // ok
|
??????????????const?????const????????????????????????????const????????????????????????????Σ??????????????????????????????????????????????????
????const int var = 42;
????const int* const p = &var;
????????????????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
|
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11