对于会员,我使用
//.......vv
SomeType m_XXX;
//.......^^
我喜欢用作成员函数的前缀,但以or_
开头的名称是保留的,不应使用。_
__
我的想法是,当我有:
SomeClass myObject;
myObject.[XXX]
当(lib)用户写点(.
)时,查看所有函数(一个接一个)只有public
.
这有一个通用的命名约定吗?
我知道,我可以使用pImpl
或继承,接口和实现类
对于会员,我使用
//.......vv
SomeType m_XXX;
//.......^^
我喜欢用作成员函数的前缀,但以or_
开头的名称是保留的,不应使用。_
__
我的想法是,当我有:
SomeClass myObject;
myObject.[XXX]
当(lib)用户写点(.
)时,查看所有函数(一个接一个)只有public
.
这有一个通用的命名约定吗?
我知道,我可以使用pImpl
或继承,接口和实现类
最常见的做法是在没有任何公共前缀或后缀的情况下命名成员函数。就个人而言,我认为区分它们没有任何好处,如果您的动机与“编写点 (.),查看所有功能”有关,那么听起来您应该配置或更改您的编辑器,而不是更改您的编程风格以适应它.
一个好的约定是结尾的下划线,like_this_
. 前导下划线是 Python 的方式,但是,在 C++ 中,所有以下划线开头的标识符都保留用于实现。
另一种选择是始终使用前缀成员访问this
。
我更喜欢使用并且我更喜欢静态成员_member
中的成员变量否并以_camelCase
_
Cap
但永远不要使用__
or___
或两个以上的下划线,它是为间隔保留的。m_
非常流行和古老,我第一次在 Visual C++ 中看到了它。但我个人觉得很丑。
我发现没有理由区分私有和公共实例变量。但如果它是一个类变量,那么我从一个 BigCap 开始MyClass::MyVar
对于局部变量,我使用x
or x_y
。所以当地人不会与会员发生冲突