2 回答

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊
首先:
1 | const double pi=3.1415926; |
這個(gè)表明pi是個(gè)常量。就是不能改變的量。和
1 | #define pi 3.1415926 |
差不多,只是比define更安全。const是C++的風(fēng)格。
----------------------
另外:
virtual double Area() const =0; virtual double Volume() const =0; |
這定義了Area()和Volume()是常成員函數(shù)。
(說句題外話,后面的“=0”表明它倆都是純虛函數(shù)。)
常成員函數(shù)有啥特點(diǎn)呢?呵呵,
常成員函數(shù)不能更新類的成員變量(如它倆都不能更新radius的值),也不能調(diào)用該類中沒有用const修飾的成員函數(shù),只能調(diào)用常成員函數(shù)(如它倆可以相互調(diào)用,卻不能調(diào)用其他的成員函數(shù))。
還有:
const是函數(shù)類型的一部分,在實(shí)現(xiàn)部分也要帶該關(guān)鍵字。
所以你可以看到,在下面的代碼中,聲明他們的時(shí)候,都帶上了const.
還有疑問么?請追問。

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊
const就是不可修改的意思唄。。。
1、
因?yàn)槌顺跏蓟臅r(shí)候有賦值,之后不允許改變,所以叫常量了。
2、
通常在定義函數(shù)時(shí)形參都定義成const類似比較多,目的就是防止在傳指針或者引用時(shí),錯(cuò)誤地修改了原先的數(shù)據(jù)。// void do_nothing(const string& str);
3、
還有就是函數(shù)的返回值有用const修飾的,一般來說也都是返回引用或指針比較多,目的都是一樣的,不允許其他接口去直接修改該內(nèi)容;// const kind_of_class* get_this_kind_of_class();
4、
上面都是做前綴的,再者就是成員函數(shù)后面做后綴的;意思就是該函數(shù)不修改本class內(nèi)的任何成員變量;// int just_get_some_class_info() const;
差不多工作中常用的就這些個(gè)吧。
- 2 回答
- 0 關(guān)注
- 365 瀏覽
添加回答
舉報(bào)