Class 在 public 之外声明的成员函数,受保护且私有

Class member function declared outside of public, protected and private

我遇到了一些看起来像这样的代码:

class SomeClass {
   void SomeFunction();

public:
   ~~ public members
}

class 中没有私人或受保护的成员。

我的问题是;是不是标注了class和'SomeFunction'的哪一部分属于不良编程?或者以这种方式定义函数是否隐式地将其分配给 class 的某些部分,即私有或受保护,因为它不是 public 成员的一部分?

在C++中,classstruct的区别在于 对于 struct 一切都是隐含的 public 而对于 class 一切都是隐含的 private.

只要您明确使用 public:private:protected: 两种情况下的行为相同 对于以下成员。

继承也是如此。
struct A : B 是 public 继承。
class A : B 是私有继承。

在您的示例中,SomeFunction() 隐式 class的一部分,所以被认为是private

一位非常受人尊敬的 C++ 专家认为这种 声明(隐式 private)作为一种良好做法。
( https://howardhinnant.github.io/classdecl.html )