在C++中,有时在类定义中,先声明公共成员,后声明私有成员,但变量或数据成员通常是私有的,由公共方法使用。但是变量或数据成员通常是私有的,由公共方法使用。所以,在这种情况下,变量被使用,但还没有声明。因此,代码变得难以理解。但我发现著名的程序员、网站或书籍都是先声明私有成员后声明的。有谁知道这是什么原因吗?
我这样做是因为我的类的用户并不关心私有成员,他们感兴趣的是公共API(即如何使用我的类)。
另外,在头文件中,我一般只是声明成员函数,而不是定义它们,所以无论如何我不会访问任何私有成员。
我们阅读文本是从上到下的,所以最相关的信息应该在顶部。在一个类的定义中,那就是公共接口。
私有成员和实现应该隐藏在头文件中。把私有成员定义放在底部是一种快速的方法。也许使用 萍水相逢 并将类的私有部分隐藏在一个内部结构中。
通常私有成员并不重要。如果我看一个类是为了确定如何在代码中的其他地方使用它,我并不关心它的内部结构,所以把私有成员放在底部,因为我不需要知道它们。如果我正在修改一个类,那么我会花时间去找私有成员,并且知道它们会在底部,而不是必须浏览整个类。
我们就像对立面。我的问题
我的理由是,当你正在熟悉一个类的时候,首先介绍一下公共接口,然后在需要的时候再去深入了解私有成员,这样更有好处。如果你一开始就看私有成员,你就没有背景,不知道它们是如何使用的。
同意。私有成员应该在底部声明。我发现的唯一一个先声明私有成员的好理由,是当一个函数需要获取或返回一个自定义的数据类型时,比如:矢量。编译器会问你这是什么数据类型。
但即使如此,在这种情况下,我更倾向于这样做。
{
private: /// advicing ofc theres more private below!
earlier declare just of the type
public:
private:
};