Y erbte von X. X würde Y gerne in die privaten Teile zugreifen und da was reintun. Dazu muss Y Freund von X sein.
Vererbungshierarchien, Freundschaften und Koten in C++ sind eine Schweinerei.
class Y : public X {
public:
friend class X;
private:
void insert_geheim(Data data) {
//private Teile
}
};