Re: Указатели на функции классов
От: Vamp Россия  
Дата: 23.07.10 15:23
Оценка: 2 (1)
M>Хочу добавить в него указатель на функцию, который будет устанавливаться в конструкторе и при вызове обращаться либо к func1 либо к func2

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


#include <iostream>

using namespace std;

class A {

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

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

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

};

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

}
Да здравствует мыло душистое и веревка пушистая.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.