簡體   English   中英

函數參數名稱和類變量名稱之間的區別

[英]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”來區分成員變量。 最常用作前綴mWidthm_width 但是另一種樣式(由ASL使用, Adobe Source Libraries )通過使用“ m”作為后綴,更符合標准C ++名稱,例如size_twidth_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM