为什么同一个类的对象可以访问彼此的私有数据
同一类的对象可以访问彼此的私有数据,真是令人惊讶数据。鉴于私有数据应该是私有的,为什么会发生这种情况?
理解类级访问控制
在 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中文网其他相关文章!