[英]Differing between function argument names and class variable names
class line
{
public:
line(int Width)
: width(Width)
{
}
private:
int width;
};
我可以將Width命名為wantedWidth之類的名稱,但是我只是想知道,對於這種方法還是更好的方法是否有約定? 我不想使用匈牙利表示法。
是的,有一個慣例,其中有數百個。 我的名字只是在我的會員名后加上下划線。
只有一個約定..那就是始終如一地遵循它 。
沒有約定。 具有與成員同名的參數會“遮蔽”該成員:
class Foo {
int mint;
void hi(int mint) {
mint = 2; // refers to the parameter
}
};
我通常在參數名稱前放一個_,以防止發生沖突。 例如
void Myclass::memberFunction (int _param1, int _param2)
{
param1 = _param1;
member = _param2-3;
}
如有需要,請制定自己的約定。
this-> width = width(或者您的情況下Width)
一種常見的方法是使用“ m”來區分成員變量。 最常用作前綴mWidth
或m_width
。 但是另一種樣式(由ASL使用, Adobe Source Libraries )通過使用“ m”作為后綴,更符合標准C ++名稱,例如size_t
: width_m
。
class line
{
public:
line(int width)
: width_m(width)
{
}
private:
int width_m;
};
我會這樣寫這段代碼:
class Line
{
public:
Line( int nWidth )
: m_nWidth( nWidth )
{
}
private:
int m_nwidth;
};
在我的代碼中-m_ *代表成員,n *代表數字(如果無符號數字-un等等),所有類均以大寫字母命名,public始終位於頂部。
我的意思是,我更喜歡匈牙利表示法,它非常干凈實用。 您可以閱讀本文以獲取更多信息, 網址為http://en.wikipedia.org/wiki/Hungarian_notation 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.