Всем привет.
Данный вопрос уже пару раз обсуждался, но ясного ответа почему так происходит не было.
class A
{
protected:
void funcA() {};
};
class B: public A
{
public:
void funcB()
{
B::funcA(); // ok
A::funcA(); // ok
&A::funcA; // error
};
};
Адрес A::funcA взять нельзя, несмотря на то, что класс B имеет все полномочия для доступа к методу. Если объявить В другом, то ошибки не будет (т.е. права появятся, хотя функция не private, а protected). Такое поведение мне не понятно и кажется не логичным.
Почему же нельзя взять адрес, чем это продиктовано? Если можно с ссылками на стандарт.
Спасибо