एक ही वर्ग की वस्तुओं का एक-दूसरे के निजी डेटा तक पहुंच क्यों है?
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;
}
यह कोड काम करता है। ऑब्जेक्ट b से निजी डेटा एक्सेस करने और उसे वापस करने के लिए ऑब्जेक्ट के लिए यह पूरी तरह से संभव है। यह ऐसा क्यों होना चाहिए? मुझे लगता है कि निजी डेटा निजी है। (मैंने पिंपल मुहावरे में कॉपी कंस्ट्रक्टर्स को समझने की कोशिश करके शुरुआत की थी, लेकिन तब मुझे पता चला कि मैंने इस सरल स्थिति को भी नहीं समझा है।)