【发布时间】:2012-05-02 06:18:09
【问题描述】:
我想知道在 C++ 中对成员变量和函数参数使用相同的名称是否是一种好习惯。
我来自 Java 背景,这很常见。我想知道在 C++ 中是否存在以下缺点(代码有效):
class Player
{
public:
void setState(PlayerState *state)
{
this->state = state;
}
private:
PlayerState *state;
}
感谢您的回答。据我了解,虽然它有效,但更好的做法是放置某种标记来区分成员变量和函数参数,例如:
_ or m_
在某些编辑器(如 Qt Designer)中,成员变量以不同的颜色显示。这就是为什么似乎没有必要添加任何前缀的原因。
【问题讨论】:
-
纯粹是您的组织的编码准则所遵循的选择和约定。
-
我认为除了不必写
this->之外没有任何迹象。我总是在前后使用某种下划线,但这只是个人喜好问题。 -
有些人,属性名称以m开头,例如这里是mState,如果代码被别人修改,最好这样做,你的代码越可读越好
-
小心
set/get成员,否则您将得到quasi-classes [PDF]。 -
我使用大写的“F”表示“字段”,但这只是历史记录。如果您使用初始化列表,则更清楚将什么分配给什么,(除非它是 C#,否则您不能)。
标签: c++ parameters naming-conventions