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++中,class
和struct
的区别在于
对于 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 )
我遇到了一些看起来像这样的代码:
class SomeClass {
void SomeFunction();
public:
~~ public members
}
class 中没有私人或受保护的成员。
我的问题是;是不是标注了class和'SomeFunction'的哪一部分属于不良编程?或者以这种方式定义函数是否隐式地将其分配给 class 的某些部分,即私有或受保护,因为它不是 public 成员的一部分?
在C++中,class
和struct
的区别在于
对于 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 )