对于会员,我使用
//.......vv
SomeType m_XXX;
//.......^^
我希望使用_
作为成员函数的前缀,但以_
或__
开头的名称是保留的,不应使用。
我的想法是,当我有:
SomeClass myObject;
myObject.[XXX]
当用户(lib)写入点(.
)时,查看仅public
的所有函数(一个接一个)。
这是否有共同的命名约定?
我知道,我可以使用pImpl
或继承,使用接口和实现类
答案 0 :(得分:12)
最常见的做法是命名成员函数,不带任何公共前缀或后缀。就个人而言,我认为区分它们没有任何好处,如果你的动机与“写点(。),查看所有功能”相关,那么听起来你应该配置或更改你的编辑器,而不是改变你的编程风格以适应它
答案 1 :(得分:5)
一个好的约定是尾随下划线like_this_
。前导下划线是Python方式,但是,在C ++中,所有以下划线开头的标识符都保留用于实现。
另一个选择是始终使用this
为成员访问添加前缀。
答案 2 :(得分:1)
我更喜欢使用_member
,我更喜欢_camelCase
中的成员变量和静态成员否_
,并且首先使用Cap
但从不使用__
或___
或两个以上的下划线,它是为Intervals保留的。 m_
非常受欢迎且很老,我在Visual C ++中首先看到过。但我个人觉得这很难看。
我发现没有理由区分私有和公共实例变量。但如果它是一个类变量,那么我开始使用像MyClass::MyVar
对于局部变量,我使用x
或x_y
。所以当地人不要与会员发生冲突