Re: Массив указателей на функции-члены класса
От: Mikka77  
Дата: 29.09.04 14:47
Оценка:
Ну, например, вот так:
тут 3 примера:
— через массив указателей-член классаж
— через локальный массив в функции-членеж
— через массив в функции-не-члене класса. Выбирай, что больше нравится
Кстати, typedef указателя на функцию — это просто для удобства, его можно конечно объявить и не внутри класса, а можно и вовсе не объявлять

#include <iostream.h>

class MyClass {
public:
typedef int(MyClass::*PF)();

int f1(){return 1;}
int f2(){return 2;}
int f3(){return 3;}

MyClass();
void Write();
PF m_pf[3];
};


MyClass::MyClass() {
m_pf[0] = &MyClass::f2;
m_pf[1] = &MyClass::f1;
m_pf[2] = &MyClass::f3;

for(int i=0;i<3;i++)
cout<<(this->*m_pf[i])()<<endl;
}

void MyClass::Write() {
PF pf[] = {f3,f2,f1,};
for(int i=0;i<3;i++)
cout<<(this->*pf[i])()<<endl;
}

int main(int argc, char* argv[])
{
int(MyClass::*pf[])() = {MyClass::f1, MyClass::f2, MyClass::f3};

MyClass mc;
for(int i=0;i<3;i++)
cout<<(mc.*pf[i])()<<endl;

mc.Write();

return 0;
}
"Количество времени, необходимое для решения задачи, не зависит от того, было это время использовано для решение данной задачи или нет." ©Mikka77
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.