Проблему решил так:
#define MAX_FUN
1. Вариант
class A {
public:
A();
typedef void (A::*pF)(int a);
vector<pF>;
f1(int a);
f2(int a);
..................
};
A::A() {
pF.resize(MAX_FUN);
pF[0] = &A::f1;
.......................
pF[MAX_FUN] = &A::fMAX_FUN;
}
Ну в общем понятно.
Так же можно сделать так
2. Вариант
class A{
public:
virtual void f1(int a) = 0;
}
class B : public A {
public:
void f1(int a) {cout << "Class B\n";}
}
........ Тут еще наследуем
Ну и создаем массив указателей на объект типа A, содержащий
указатели на производные классы.
1. Какой из методов лучше ?
2. А, если, у всех ф-ций будут разные типы аргумента a ?
f1(float a), f2(double a) и т.д. для варианта 1, и для ф-ций f1
разный тип в производных классах вариант 2.
Думаю, надо делать как-то так:
template<class X> class A {
public:
virtual void f1(X a) = 0;
};
class B : public A<float> {
void f1(float a);
};
......................
Но тогда вопрос какой тип должен иметь массив указателей на ф-ции
(Вариант 1) и объектов (Вариант 2) ? Ведь прототипы указателей тогда
будут у всех разные - (*f1)(X a), где Х - какой-то тип.
Ответ на:
комментарий
от Absurd
Ответ на:
комментарий
от guest-3484-2009
Ответ на:
комментарий
от drZlo
Ответ на:
комментарий
от drZlo
Ответ на:
комментарий
от Absurd
Ответ на:
комментарий
от drZlo
Ответ на:
комментарий
от Absurd
Ответ на:
комментарий
от drZlo
Ответ на:
комментарий
от drZlo
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Специализация шаблонов для перегруженных оперторов. (2009)
- Форум перегрузка виртуальных функций. (2015)
- Форум 100 dynamic_cast'ов за 1 миллисекунду (2014)
- Форум Укозатель на функцию член (2006)
- Форум Перегрузка вирт функции в шаблоне (2014)
- Форум Не могу понять в чём грабли (2006)
- Форум C++ и указатели на методы (2004)
- Форум Вопрос по С++ (2004)
- Форум доступ к шаблонным объектам фабрики??? (2006)
- Форум Как указать параметры которые еще не известны (2015)