C++????Щ?£?const?÷??????
???????????? ???????[ 2014/6/10 11:30:03 ] ????????C++ net
?????????????????????У???????? 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????????????????á?
???????const????
?????????????β???const???????????????????????????????????????????????????????????
????1??const????
????2?????const????????
????3????const?????????
????4????????????const????
??????????????const??????βΣ?????????const?????????????κ????壬????????????????????????????????????????仯???
?????????const?????????this?????????const????????????const???????????????this???????????const?????const???
????mutable ???η????const??????????????Щ??????????????????????????????????????????????κ??????????
??????? const ????????????const???????????????????????????????????? const ???Σ????????????????????????const?????const?????????仰??????????????this????????const?????const????????????????this?????????????const?????????????????????????????е??á??? const ???????????this??????? ???const?????const????????????????á?
???????const????
?????????????β???const???????????????????????????????????????????????????????????
????1??const????
????2?????const????????
????3????const?????????
????4????????????const????
??????????????const??????βΣ?????????const?????????????κ????壬????????????????????????????????????????仯???
1 int main(void)
2 {
3 int var = 42;
4 fun(var);
5 cout << var << endl; // print 42
6 return 0;
7 }
8 void fun( int i)
9 {
10 i = 10;
11 }
|
????????????????????????????????????д??????????????const?????????????ε?????
????????????????????????????????????????β????????ε??????????????????ν??б???????????????????????β?????const????????????á?
????????????????????????????????????????β????????ε??????????????????ν??б???????????????????????β?????const????????????á?
1 void fun( const int* p)
2 {
3 *p = 42; // error
4 int var = 10;
5 p = &var; // ??????p??????
6 }
7 void fun(const int& p)
8 {
9 p = 42; // error??p????????const?????????
10 }
|
?????е??????????????????????????const??????????????????????????????????????????*???????
????1 class Rational{
????2 // ....
????3 };
????4 const Rational operator* (const Rational& lhs?? const Rational& rhs);
????5 Rational a?? b?? c;
????6 a*b = c; // Error????????????const????
??????????????????????????????????const???????a*b=c?????????????????????????????????????????????Υ????????????????????????????????????????????????
????1 class Rational{
????2 // ....
????3 };
????4 const Rational operator* (const Rational& lhs?? const Rational& rhs);
????5 Rational a?? b?? c;
????6 a*b = c; // Error????????????const????
??????????????????????????????????const???????a*b=c?????????????????????????????????????????????Υ????????????????????????????????????????????????
???????????????????????漰???????????????????SPASVOС??(021-61079698-8054)?????????????????????????