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

问题描述 投票:30回答:6

在C++中,有时在类定义中,先声明公共成员,后声明私有成员,但变量或数据成员通常是私有的,由公共方法使用。但是变量或数据成员通常是私有的,由公共方法使用。所以,在这种情况下,变量被使用,但还没有声明。因此,代码变得难以理解。但我发现著名的程序员、网站或书籍都是先声明私有成员后声明的。有谁知道这是什么原因吗?

c++ private
6个回答
37
投票

我这样做是因为我的类的用户并不关心私有成员,他们感兴趣的是公共API(即如何使用我的类)。

另外,在头文件中,我一般只是声明成员函数,而不是定义它们,所以无论如何我不会访问任何私有成员。


27
投票

我们阅读文本是从上到下的,所以最相关的信息应该在顶部。在一个类的定义中,那就是公共接口。


6
投票

私有成员和实现应该隐藏在头文件中。把私有成员定义放在底部是一种快速的方法。也许使用 萍水相逢 并将类的私有部分隐藏在一个内部结构中。


2
投票

通常私有成员并不重要。如果我看一个类是为了确定如何在代码中的其他地方使用它,我并不关心它的内部结构,所以把私有成员放在底部,因为我不需要知道它们。如果我正在修改一个类,那么我会花时间去找私有成员,并且知道它们会在底部,而不是必须浏览整个类。


2
投票

我们就像对立面。我的问题

我的理由是,当你正在熟悉一个类的时候,首先介绍一下公共接口,然后在需要的时候再去深入了解私有成员,这样更有好处。如果你一开始就看私有成员,你就没有背景,不知道它们是如何使用的。


0
投票

同意。私有成员应该在底部声明。我发现的唯一一个先声明私有成员的好理由,是当一个函数需要获取或返回一个自定义的数据类型时,比如:矢量。编译器会问你这是什么数据类型。

但即使如此,在这种情况下,我更倾向于这样做。

{
private: /// advicing ofc theres more private below!
   earlier declare just of the type

public:


private:

};
© www.soinside.com 2019 - 2024. All rights reserved.