将m_varname用作public并且使用_variable作为私有
的同一个类是错误的答案 0 :(得分:10)
一些担忧:
为什么你有公共变量?
以_和__开头的标识符保留给系统库。在实践中,这并不常见,但很高兴知道。
有了这些说法,创建命名约定没有任何问题,无论它看起来如何。只是保持一致。
答案 1 :(得分:8)
C ++和Java也是如此:您不需要任何匈牙利语符号,也不需要任何前缀/后缀。你有关键字“这个”!
class MyClass {
private:
int value;
public:
MyClass(int value) {
this->value = value;
}
}
当然在这个简单的例子中你可以(应该!)使用构造函数初始化列表;)
因此,使用任何尴尬的符号只是使用语言的可能性。当您知道成员变量的名称时 - 您知道它是完美的。你为什么要用“_”来混淆它?
至于为公共和私人成员使用相同的名称:这绝对是错误的想法!为什么在同一个类中需要两个东西来表示相同的东西?将其设为私有,将其命名为完美,并将getter和setter公之于众。
答案 2 :(得分:2)
就命名约定而言,每个人都有自己的偏好。我会说更多的人会同意在课堂上没有任何公共变量。
答案 3 :(得分:2)
您不应使用以下划线开头或包含双下划线的名称。这些名称保留用于编译器和实现。除了这个限制,您可以使用您和您的团队喜欢的任何命名约定。就个人而言,我讨厌任何形式的“匈牙利”符号,也不喜欢m_something符号。让我感到困扰的是,如果我需要更改变量的类型,我需要在其发生的任何地方更新其名称。这是一个维护问题。
答案 4 :(得分:0)
假设您正在使用C ++,我的答案是否定的。这是完全合理的,但你应该坚持这个惯例。
然而,像C#这样的静态类型语言假定这样的命名约定有些多余。
就我个人而言,我觉得它很丑陋,但是C ++中的变量来源并不明显,因为加糖可能有所帮助。
答案 5 :(得分:0)
那里有许多C ++约定。关键是找到一个和/或适应一个。坚持下去,并保持一致。如果你在某个地方工作,试着尽可能多地制定约定。那里有很多人,每个人都有很好的论据,但他们可以相互矛盾(联合攻击战斗机,贝尔实验室,Mozilla等等)
如果项目的不同部分之间存在不同的约定,那么至少使每个文件本身保持一致,并且.cpp和.h文件应该彼此一致。
我发现能够理解不同约定编写的代码会更好,这样您就可以更快地适应新的工作环境