Re[2]: Указатель на нестатическую функцию в шаблонном классе
От: morm Россия  
Дата: 29.08.10 09:03
Оценка:
Здравствуйте, Мишень-сан, Вы писали:

МС>Здравствуйте, Hepri, Вы писали:



H>>Есть класс, содержащий две функции и указатель на функцию такого типа.

H>>Нужна чтобы этот указатель ссылался на одну из функций в зависимости от условия.

H>>Делаю так, но не выходит

H>>
H>>template <class Item>
H>>class A {
H>>public:
МС>      typedef int (*A::Call_t)(Item);
H>>    A(unsigned int flag) {
H>>        Call=GetFunc(flag);
H>>    }
    
H>>    int Add(Item Data) {
H>>        return (*Call)(Data);
H>>    }
    
H>>    Call_t GetFunc(unsigned int flag) {
МС>                return flag & 1
МС>                    ? &A::_FuncA
МС>                    : &A::_FuncB;
H>>    }
H>>    int _FuncA(Item Data){return 0;}
H>>    int _FuncB(Item Data){return 1;}
МС>        Call_t Call;
H>>}
H>>


H>>В чём ошибка?


МС>Как-то так. В С++ нет автоматического захвата контекста, а следовательно нет и встроенных делегатов. Если нужны замыкания, посмотрите в сторону boost.


typedef int (A::*Call_t)(Item);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.