C++ 函数参数名和类变量名之间的差异

C++ 函数参数名和类变量名之间的差异,c++,C++,我可以把宽度命名为wantedWidth之类的东西,但我只是想知道,这是一种惯例还是一种更好的方式?我不想用匈牙利符号。没有惯例。与成员具有相同名称的参数会“隐藏”该成员: class line { public: line(int Width) : width(Width) { } private: int width; }; 我通常只是在参数名前加一个u,以防止冲突。例如 class Foo

我可以把宽度命名为wantedWidth之类的东西,但我只是想知道,这是一种惯例还是一种更好的方式?我不想用匈牙利符号。

没有惯例。与成员具有相同名称的参数会“隐藏”该成员:

class line
{
    public:
        line(int Width)
        : width(Width)
        {
        }

    private:
        int width;
};
我通常只是在参数名前加一个u,以防止冲突。例如

class Foo {
  int mint;
  void hi(int mint) {
    mint = 2; // refers to the parameter
  }
};

如果你想的话,就制定你自己的惯例。

是的,有一个惯例,成百上千个。我的方法是简单地在我的成员名称后面加一个下划线。

这个->宽度=宽度(或者在你的例子中是宽度)

常用的方法是使用“m”来区分成员变量。这最常用作前缀,
mWidth
m_width
。但是另一种风格(使用ASL,)更多的符合标准的C++名称,例如“代码> siZeStt < /Cord>”,使用“M”作为后缀:<代码> WiththM
void Myclass::memberFunction (int _param1, int _param2)
{
  param1 = _param1;
  member = _param2-3;
}

只有一个惯例。。那就是要始终如一地遵循它

我会这样写代码:

class line
{
    public:
        line(int width)
        : width_m(width)
        {
        }

    private:
        int width_m;
};
在我的代码中-m_*代表成员,n*代表数字(如果未签名的数字-un等…),所有类都用大写字母命名,public始终位于顶部


我的意思是,我更喜欢匈牙利符号,它非常干净和有用。你可以阅读这篇文章了解更多信息。

@Prasoon:OP再也不可能提出问题了。没有一个惯例。根据您的喜好,您可以做任何事情来区分这两者。无论你做什么,都要确保始终如一。也就是说,我在两种不同的风格上取得了巨大的成功:在成员前面加上
m
和在成员后面加上
\uu
@James:那么这应该是关闭的(主观的和有争议的),投票关闭。我很确定我以前用过“this”,但我通常只是在成员变量前面加上“m”,在参数前面加上“a”。皮格本是对的。编辑。是的,我不能忍受这个->到处都是,因为所有的成员变量和参数都冲突。
class Line
{
public:
    Line( int nWidth )
        : m_nWidth( nWidth )
    {
    }

private:
    int m_nwidth;
};