為什麼同一個類別的物件可以存取彼此的私有資料
同一類別的物件可以存取彼此的私有數據,真是令人驚訝數據。鑑於私有資料應該是私有的,為什麼會發生這種情況?
理解類別級存取控制
在 C 中,存取控制是在每個 -類別的基礎,而不是每個物件的基礎。這意味著特定資料的存取權限是由它所屬的類別決定的,而不是由保存它的物件決定的。
考慮以下程式碼:
class TrivialClass { public: TrivialClass(const std::string& data) : mData(data) {}; const std::string& getData(const TrivialClass& rhs) const { return rhs.mData; }; private: std::string mData; };
這裡,TrivialClass的getData方法可以存取另一個TrivialClass物件的mData成員。這是因為存取控制是由類別本身決定的。私有存取說明符使 mData 僅在 TrivialClass 類別及其衍生類別中私有。
類別存取控制的意義
類別存取控制有幾個意義:
結論
雖然類別層級的存取控制可能看起來違反直覺,但它允許C 程式設計師以利用語言靜態特性的方式定義類別和對象並與之互動。在設計和實作 C 程式碼時,了解此模型的含義非常重要。
以上是為什麼C中同一類別的物件可以存取彼此的私有成員?的詳細內容。更多資訊請關注PHP中文網其他相關文章!