![](/img/trans.png)
[英]Why can't this public member function call decltype on a private struct member declared inside the class?
[英]Class member function declared outside of public, protected and private
我遇到了一些看起來像這樣的代碼:
class SomeClass {
void SomeFunction();
public:
~~ public members
}
class 沒有私有或受保護成員。
我的問題是; 沒有標記 class 的哪個部分“SomeFunction”屬於不良編程? 或者以這種方式定義 function 是否隱含地將其分配給 class 的某些部分,即私有或受保護,因為它不是公共成員的一部分?
在 C++ 中, class
和struct
之間的區別在於,對於struct
,所有內容都是隱式public
的,而對於class
,所有內容都是隱式private
的。
只要您明確使用public:
、 private:
或protected:
在兩種情況下,以下成員的行為都是相同的。
inheritance 也是如此。
struct A: B
是公共 inheritance。
class A: B
是私有 inheritance。
在您的示例中, SomeFunction()
位於class
的隱式部分,因此它被視為private
。
一位非常受人尊敬的 C++ 專家認為這種聲明(隱式private
)是一種很好的做法。
( https://howardhinnant.github.io/classdecl.html )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.