class xyz;
struct CDetail {
CDetail() : a (42) {}
int a, b, c;
std::set<int> mySet;
xyz *some_private_ptr;
};
struct C : private CDetail {
protected:
using CDetail::a;
};
struct D : C {
void f() {
cout << a;
}
};
int main() {
D d;
d.f(); // D can access 'a'
//cout << d.a; // main cannot access 'a'
return 0;
}