Класс сторонней библиотеки содержит защищенный член. Как я могу получить к нему доступ, если мы не можем изменить код сторонней библиотеки?Как получить доступ к защищенному члену, если мы не можем изменить класс?
ответ
Защищенный член может быть доступен только классам, подклассам или классам друзей и классам. Единственный способ доступа к защищенному члену - подкласс класса, а затем использовать ваш подкласс для защиты защищенного члена.
Например:
class parent {
/* Other members */
protected:
int foo();
}
class child : public parent {
public:
int foo();
}
Вы должны сделать специальную оболочку для этого класса. Просто наследуйте класс библиотеки и получите доступ к защищенным членам. Из-за наследования можно использовать класс оболочки вместо базового класса в следующем коде.
Вы можете получить доступ к защищенным членам из производного класса.
class A
{
protected:
int i;
};
class B : public A
{
void func()
{
i; //valid
}
};
Недействительно, 'i' по-прежнему защищен в' B'. Вы должны сделать это явно публичным. – GManNickG
- 1. Не удается получить доступ к защищенному члену?
- 2. Как получить доступ к защищенному члену
- 3. друг класс не может получить доступ к защищенному члену
- 4. Свободный доступ к защищенному члену
- 5. не удается получить доступ к защищенному члену «object.MemberwiseClone()»
- 6. Не удается получить доступ к защищенному члену Foundation.NSDictionary.NSDictionary (System.IntPtr) '
- 7. Доступ к защищенному члену базового класса
- 8. Доступ к защищенному члену из класса друзей
- 9. не может получить доступ к защищенному члену ... без питона подкласса
- 10. Как я могу получить доступ к «родительскому» защищенному члену?
- 11. Как получить доступ к защищенному члену в унаследованного класса
- 12. Невозможно получить доступ к защищенному члену из производного класса
- 13. Невозможно получить доступ к защищенному члену, объявленному в классе 'A'
- 14. как получить доступ к защищенному классу метод
- 15. Как получить доступ к защищенному объекту Zend_Db_Adapter
- 16. Метод класса не может получить доступ к защищенному члену «Ошибка: идентификатор не определен»
- 17. Не удается получить доступ к защищенному объекту
- 18. Не удается получить доступ к защищенному элементу
- 19. Доступ к защищенному наследованию
- 20. Доступ к защищенному объекту
- 21. Можем ли мы получить доступ к статической переменной-члену чистого виртуального класса?
- 22. Класс com.google.appengine.tools.development.agent.runtime.Runtime не может получить доступ к члену класса
- 23. Можем ли мы получить доступ к защищенному url-плаву через медный плагин в Firefox?
- 24. Зачем отражать доступ к защищенному/частному члену класса в C#?
- 25. C++/CLI не может получить доступ к защищенному члену базового класса
- 26. Как получить доступ к закрытому члену класса?
- 27. Как получить доступ к защищенному объекту Joomla?
- 28. доступ к защищенному enum
- 29. Как получить доступ к члену структуры, не зная названия?
- 30. Доступ к защищенному api
Почему вы хотите получить к нему доступ? Почему вы знаете, что это там, в первую очередь? Защита выполняется по какой-то причине ... –
Файлы заголовков C++ дадут определения всех общедоступных, защищенных и частных методов. –