公共和私人变量的命名约定?

时间:2009-02-26 07:40:53

标签: c++

将m_varname用作public并且使用_variable作为私有

的同一个类是错误的

6 个答案:

答案 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文件应该彼此一致。

我发现能够理解不同约定编写的代码会更好,这样您就可以更快地适应新的工作环境