Re[2]: Указатели на функции классов
От: Mattias  
Дата: 23.07.10 16:18
Оценка:
Здравствуйте, Vamp, Вы писали:

M>>Хочу добавить в него указатель на функцию, который будет устанавливаться в конструкторе и при вызове обращаться либо к func1 либо к func2


M>>Как это можно сделать?


V>
V>#include <iostream>

V>using namespace std;

V>class A {

V>public:
V>typedef void (A::*f)();
V>f selector;

V>void func1() {cout << "F1" << endl;}
V>void func2() {cout << "F2" << endl;}
V>void call_selector() { (this->*selector)();}

V>A(bool s) {
V>     if (s == true)
V>         selector = &A::func1;
V>     else
V>         selector = &A::func2;
V>}  

V>};

V>int main() {
V>     A f1(true);
V>     A f2(false);
V>     (f1.*(f1.selector))();
V>     f1.call_selector();
V>     (f2.*(f2.selector))();
V>     f2.call_selector();

V>}
V>



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