реклама на сайте
подробности

 
 
> Указатели на функции-члены и наследование
Непомнящий Евген...
сообщение Nov 19 2007, 08:12
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Код

class Base
{
protected:
    typedef void (Base::*PBaseFunc)();

    void f1();

    void doAction(PBaseFunc func);
};

class Derived : public Base
{
protected:
    void func()
    {
        doAction(&Base::f1);
    }
};

Выдает ошибку:
doAction(&Base::f1);
^
"main.cpp",139 Error[Pe410]: protected function "Base::f1" is not accessible through a "Base" pointer or object.
Если в Base f1 сделать public - все ок. Не пойму, почему protected-функцию нельзя вызвать через указатель в производном классе.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 21:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01363 секунд с 7
ELECTRONIX ©2004-2016