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

作者: hn12404988 (Willy)   2017-05-11 12:04:47
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名稱)
作者: james732 (好人超)   2017-05-11 12:19:00
有的時候覺得寫程式最困難的是命名XD
作者: boss0405 (boss)   2017-05-11 12:26:00
所以一堆code前面加個底線,或是前後都加個底線,只能說命名的時候不要太common
作者: descent (「雄辯是銀,沉默是金」)   2017-05-11 12:29:00
data member 我後面會加底線, int md_;
作者: tinlans ( )   2017-05-11 12:36:00
class name 用 camel case 命名啊
作者: Sidney0503 (Sidney0503)   2017-05-11 13:05:00
專案namespcae 可以參考boost的格式
作者: k387259 (台灣李宏感)   2017-05-11 13:50:00
我都是用namespace處理掉
作者: BlazarArc (Midnight Sun)   2017-05-11 15:00:00
namespace在哭
作者: s4300026 (s4300026)   2017-05-11 17:45:00
我是類別和方法,開頭第一字一律大寫,變數第一字一律小寫應該說自定義型別第一字大寫
作者: rodion (r-kan/reminder)   2017-05-11 17:46:00
follow好的naming convention 就不會出現這種情形
作者: steve1012 (steve)   2017-05-11 21:53:00
自定義class name 通常會規定命名規則不太會衝到

Links booklink

Contact Us: admin [ a t ] ucptt.com