указатель на метод базового класса и права доступа
От: biomorph Россия  
Дата: 17.10.06 10:12
Оценка:
Всем привет.

Данный вопрос уже пару раз обсуждался, но ясного ответа почему так происходит не было.

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). Такое поведение мне не понятно и кажется не логичным.

Почему же нельзя взять адрес, чем это продиктовано? Если можно с ссылками на стандарт.

Спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.