Under1, Over1 . Under1 , .
, , , , :
class Over1
{
protected:
class Under1
{
};
public:
class Under1Interface : public Under1
{
};
};
class Under2 : public Over1::Under1Interface
{
};
- :
class Over1
{
protected:
class Under1
{
};
};
class Under2 : private Over1, public Over1::Under1
{
};
:
class Under2;
class Over1
{
friend class Under2;
protected:
class Under1
{
};
};
class Under2 : public Over1::Under1
{
};
, Over1s Under2 - - .