C ++中私有成员函数的良好命名约定?

时间:2012-08-20 10:21:48

标签: c++ naming-conventions private-methods

对于会员,我使用

//.......vv
SomeType m_XXX;
//.......^^

我希望使用_作为成员函数的前缀,但以___开头的名称是保留的,不应使用。

我的想法是,当我有:

SomeClass myObject;
myObject.[XXX]

当用户(lib)写入点(.)时,查看仅public的所有函数(一个接一个)。

这是否有共同的命名约定?

我知道,我可以使用pImpl或继承,使用接口和实现类

3 个答案:

答案 0 :(得分:12)

最常见的做法是命名成员函数,不带任何公共前缀或后缀。就个人而言,我认为区分它们没有任何好处,如果你的动机与“写点(。),查看所有功能”相关,那么听起来你应该配置或更改你的编辑器,而不是改变你的编程风格以适应它

答案 1 :(得分:5)

一个好的约定是尾随下划线like_this_。前导下划线是Python方式,但是,在C ++中,所有以下划线开头的标识符都保留用于实现。

另一个选择是始终使用this为成员访问添加前缀。

答案 2 :(得分:1)

我更喜欢使用_member,我更喜欢_camelCase中的成员变量和静态成员否_,并且首先使用Cap

但从不使用_____或两个以上的下划线,它是为Intervals保留的。 m_非常受欢迎且很老,我在Visual C ++中首先看到过。但我个人觉得这很难看。

我发现没有理由区分私有和公共实例变量。但如果它是一个类变量,那么我开始使用像MyClass::MyVar

这样的BigCap

对于局部变量,我使用xx_y。所以当地人不要与会员发生冲突