在C ++中,有时在类定义中,公共成员首先被声明,稍后会被私有。但变量或数据成员通常是私有的,并由公共方法使用。因此,在这种情况下使用变量但尚未声明。因此代码变得难以理解。但我发现知名程序员,网站或书籍后来宣布私人会员。有人知道是什么原因吗?
答案 0 :(得分:34)
我这样做是因为我班级的用户不关心私人会员,他们对公共API感兴趣(即如何使用我的班级)。
另外,在头文件中,我通常只是声明成员函数,而不是定义它们,所以我不会访问任何私有成员。
答案 1 :(得分:24)
我们从上到下阅读文字,因此最相关的信息应位于顶部。在类定义中,这是公共接口。
答案 2 :(得分:6)
应该从头文件中隐藏私有成员和实现。将私有成员定义放在底部是一种快速的方法。也许最好使用Pimpl idiom并在内部结构中隐藏类的私有部分。
答案 3 :(得分:2)
通常私人会员无所谓。如果我正在查看一个类以确定如何在代码中的其他地方使用它我不关心它的内部因此将私有成员放在底部因为我不需要知道它们。如果我正在修改课程,那么我会花时间找到私人成员,并知道他们会在底层,而不是必须浏览整个班级。
答案 4 :(得分:2)
我们就像对立面一样:My Question
我的理由是,当你熟悉一个课程时,首先进入公共界面更有利,然后在需要时深入了解私人成员。如果您从查看私有成员开始,则没有关于如何使用它们的上下文。
答案 5 :(得分:0)
同意。私人成员应在底部宣布。首先声明私有成员的唯一理由是,当函数需要获取或返回自定义数据类型时,例如:vector。编译器会询问您这是什么类型的数据。
但即便如此,在这种情况下我还是愿意这样做:
{ 私人:///建议下面更私密! 早先声明只是类型
公共:
私人:
};