Вот требования, предъявляемые моим приложением. У меня есть класс A, который принимает указатель на функцию cFunc, в основном в моей реализации A, я вызываю его cFunc несколько раз.Может ли указатель на одну функцию указывать на функцию члена нескольких классов
Указатель cFunc должен указывать на различные функции в зависимости от приложения. Таким образом, для каждого приложения я создаю класс с тем же определением функции как cFunc, однако я не могу назначить функцию члена классовой к этому указателю
class A {
typedef double (*Def_CFunc)(std::vector<double>);
A(Def_CFunc _cFunc) { // Some implementation}
// Other Functions
};
class B { double someFunc(std::vector<double> b); };
class C { double someOtherFunc(std::vector<double> a); };
int main() {
B firstObj;
C secondObj;
// Depending upon the situation, I want to select class B or C
double (*funcPointer)(std::vector<double>) = firstObj.someFunc; // Error in this line of code
A finalObj(funcPointer);
}
Так как мне сделать это таким образом, что любой класс с функцией Члена данный формат может использоваться для инициализации класса A?
Вам действительно нужны функции, которые должны быть функциями-членами? – Mat
Не очень, но функции будут очень тесно интегрированы с переменной класса, так что, кажется, лучший способ пойти. – Nicomoto