, , 90% , , , , , . someStruct::SuperInternalValue getSuperInternalValue, , someStruct , Object.
, someStruct, Object - ( , ), someStruct ( ). , Object::printThatSuperInternalValue someStruct superInternalValue.
, "" "", Object, someStruct. , , , OO - . , encapsulation , , , , , .
class Object {
int internalValue;
public:
class someStruct {
int superInternalValue;
public:
someStruct(int v) : superInternalValue(v) {}
someStruct &operator=(someStruct const &n) {
superInternalValue = n.superInternalValue;
return *this;
}
friend ostream &operator<<(ostream &os, someStruct const &s) {
return os << s.superInternalValue;
}
};
friend ostream &operator<<(ostream &os, Object const &o) {
return os << internalValue;
}
};
someStruct ( int, ), Object /touch superInternalValue. , Object someStruct, someStruct , Object gory , someStruct.