2 回答

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

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