为什么同一类的对象可以访问彼此的私有数据?
为什么同一类的对象可以访问彼此的私有数据?
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;};int main() { TrivialClass a("fish"); TrivialClass b("heads"); std::cout << "b via a = " << a.getData(b) << std::endl; return 0;}
这个代码有效。对象a完全可以从对象b访问私有数据并将其返回。为什么会这样?我认为私人数据是私人的。(我开始试图理解pimpl习语中的复制构造函数,但后来我发现我甚至不理解这种简单的情况。)
慕田峪9158850
Smart猫小萌
相关分类