, если у меня есть, например, класса А, который содержит функции:Как сделать указатель на функцию, не являющуюся членом?
//this is in A.h
friend const A operator+ (const A& a,const A& b);
friend const A operator* (const A& a,const A& b);
, который является глобальным (для моего понимания). эта функция реализована в A.cpp.
сейчас, у меня есть класс B, который также содержит функции, и член:
//this is in B.h
friend const B operator+ (const B& a,const B& b);
friend const B operator* (const B& a,const B& b);
A _a;
вместо того, чтобы использовать два отдельных методов, я хочу, чтобы создать единый метод в Bh:
static const B Calc(const B&, const B&, funcP);
который реализуется в B.cpp и funcP является ЬурейиМ указателем на функцию выше:
typedef const A (*funcP) (const A& a, const A& b);
, но когда я попытался вызвать Calc (..) внутри функции, я получаю эту ошибку: «неразрешенный перегруженный тип функции». я называю это следующим образом:
friend const B operator+ (const B& a,const B& b){
...
return B::Calc(a,b, &operator+);
}
что я делаю неправильно?
Ваш код Безразлично» t показывают, что 'const B &' никак не связан с 'const A &'. –
Пожалуйста, напишите полный код. Учитывая проблемы, с которыми вы сталкиваетесь, невозможно понять, что не так, не видя больше кода. –