8

对于会员,我使用

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

我喜欢用作成员函数的前缀,但以or_开头的名称是保留的,不应使用。___

我的想法是,当我有:

SomeClass myObject;
myObject.[XXX]

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

这有一个通用的命名约定吗?

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

4

3 回答 3

22

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

于 2012-08-20T10:27:08.757 回答
10

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

另一种选择是始终使用前缀成员访问this

于 2012-08-20T10:33:58.623 回答
1

我更喜欢使用并且我更喜欢静态成员_member中的成员变量否并以_camelCase_Cap

但永远不要使用__or___或两个以上的下划线,它是为间隔保留的。m_非常流行和古老,我第一次在 Visual C++ 中看到了它。但我个人觉得很丑。

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

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

于 2012-08-20T10:29:46.763 回答