int CBox::operator > (const CBox& aBox) const{return this->Volume() > aBox.Volume() ;}這個函數本身就在CBox類里面,為什么還得在函數頭前加上int CBox::?這不是多此一舉嗎?或者特殊的目的在里面?它是這樣的class CBox{//definition of the constructors and class members hereint CBox::operator > (const CBox& aBox) const { return this->Volume() > aBox.Volume() ; } }如果我不加CBox::絕對Okay啊,因為這函數本身就是在類CBox里面,這樣講沒錯吧?
3 回答
三國紛爭
TA貢獻1804條經驗 獲得超7個贊
這是為了提高代碼的可讀性?! ?br/> 作用域解析運算符::使用方法如下:
1 域名::函數/類型定義 表示定義某個域的函數/類型
2 ::函數/類型調用 表示調用全局的函數/類型
補充:當函數/類型已經在某個特定域內,則可以省略域名,也可以不省略
依據補充條件,人們往往不省略,以方便在較為復雜的文件中表明某個函數/類型所屬的域 ,增加代碼的可讀性。
慕蓋茨4494581
TA貢獻1850條經驗 獲得超11個贊
CBox類里面只是函數的聲明,而int CBox::operator > (const CBox& aBox) const 才是函數的定義,定義函數的時候肯定要加上返回類型的int 另外,CBox::是說明函數的作用域,說明此函數是類CBox的成員函數.
- 3 回答
- 0 關注
- 489 瀏覽
添加回答
舉報
0/150
提交
取消
