У меня проблема, подобная той, что описана в следующей ссылке, где частный унаследованный базовый класс дает ошибку "недоступность в этом контексте", когда я пытаюсь объявить член базового класса внутри производного класса: http://bytes.com/topic/c/answers/164246-private-inheritance-renders-class-inaccessible
Явное указание X с:: X работает в приведенном выше случае, но что, если код находится в такой функции, как:
void fooby()
{
class X {};
class Y : private X {};
class Z : public Y
{
public:
X x; // compiler "inaccessible within this context" error
};
};
Как вы ссылаетесь на X в этом случае?
Если fooby был struct/class, тогда:: fooby:: X будет работать, но я не уверен, как это сделать в приведенном выше случае.