为什么在C++中将私有成员定义在公共成员之下?

27 c++ private

在C++中,有时在类定义中,公共成员首先被声明,稍后会被私有.但变量或数据成员通常是私有的,并由公共方法使用.因此,在这种情况下使用变量但尚未声明.因此代码变得难以理解.但我发现知名程序员,网站或书籍后来宣布私人会员.有谁知道是什么原因?

Dom*_*ger 34

我这样做是因为我班级的用户不关心私人成员,他们对公共API感兴趣(即如何使用我的班级).

此外,在头文件中,我通常只是声明成员函数,而不是定义它们,所以我无论如何都不会访问任何私有成员.

  • 当然,除了内联函数.然而,在除了最微不足道的案例之外的所有案例中,这些都应该在课程定义之后. (3认同)
  • +1:头文件应作为该类用户的合同.没有实现属于那里. (2认同)

小智 25

我们从上到下阅读文本,因此最相关的信息应位于顶部.在类定义中,这是公共接口.


kgi*_*kis 6

应该从头文件中隐藏私有成员和实现.将私有成员定义放在底部是一种快速的方法.也许最好使用Pimpl习语并在内部结构中隐藏类的私有部分.