Я хотел бы реализовать Container
класс, который можно получить доступ только к классам, которые я хочу, таким образом, подобное следующемуC++ ООП только предоставить доступ к определенным классам
class ContainerAccess {
// empty
};
class Container{
private:
static void _do_stuff();
static int _value;
friend class ContainerAccess;
};
Теперь я хочу, чтобы иметь доступ к данным Container
следующим образом:
class Processor: public ContainerAccess {
public:
void proccess() {
Container::_do_stuff();
Container::_value++;
}
};
Однако, это не работает. Почему это? И как это можно сделать?
Это не работает и не будет работать, потому что дружба не [** унаследована **, транзитивная или взаимная] (http://www.parashift.com/c++-faq/friendship-not-inherited-transitive.html). –
Дружба не наследуется. http://stackoverflow.com/questions/3561648/why-does-c-not-allow-inherited-friendship – japreiss
как я мог это сделать? – manatttta