[問題] 避免「變數名稱」衝突「class名稱」

看板C_and_CPP (C/C++)作者 (Willy)時間8年前 (2017/05/11 12:04), 編輯推噓6(607)
留言13則, 10人參與, 最新討論串1/3 (看更多)
Hi, 剛遇到個問題,花了十幾分鐘才找到錯誤點 不是十幾分鐘寶貴,而是我現在的C++知識不曉得要怎麼避免日後遇到同樣問題 問題以下: 例如在一個class中,宣告一個自己寫的class,例如這class叫「now_time」 但是這個class已經繼承了兩個class,其中一個非常古老的class裡面有個變數是int 也叫做「now_time」 protected: int now_time //檔案的深處 protected: now_time my_time //剛寫的新class 剛剛g++編譯出現錯誤,但是沒跟我說這個衝突,只說now_time is not a type 所以讓我一開始以為是我#include出錯的問題 但找到問題出在class name衝突variable name後,我不太知道有甚麼好的方法可以日後避免? (假設是個大型專案,OOP繼承好幾層,不可能用頭腦記所有class名稱) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.165.112.226 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1494475490.A.850.html

05/11 12:19, , 1F
有的時候覺得寫程式最困難的是命名XD
05/11 12:19, 1F

05/11 12:26, , 2F
所以一堆code前面加個底線,或是前後都加個底線,只能說
05/11 12:26, 2F

05/11 12:26, , 3F
命名的時候不要太common
05/11 12:26, 3F

05/11 12:29, , 4F
data member 我後面會加底線, int md_;
05/11 12:29, 4F

05/11 12:36, , 5F
class name 用 camel case 命名啊
05/11 12:36, 5F

05/11 13:05, , 6F
專案namespcae 可以參考boost的格式
05/11 13:05, 6F

05/11 13:50, , 7F
我都是用namespace處理掉
05/11 13:50, 7F

05/11 15:00, , 8F
namespace在哭
05/11 15:00, 8F

05/11 17:45, , 9F
我是類別和方法,開頭第一字一律大寫,變數第一字一律小
05/11 17:45, 9F

05/11 17:45, , 10F
05/11 17:45, 10F

05/11 17:46, , 11F
應該說自定義型別第一字大寫
05/11 17:46, 11F

05/11 17:46, , 12F
follow好的naming convention 就不會出現這種情形
05/11 17:46, 12F

05/11 21:53, , 13F
自定義class name 通常會規定命名規則不太會衝到
05/11 21:53, 13F
文章代碼(AID): #1P4-BYXG (C_and_CPP)
文章代碼(AID): #1P4-BYXG (C_and_CPP)