если у меня есть, например, класс А, который содержит функции:
//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;
вместо двух отдельных методов, я хочу создать один метод в B.h:
static const B Calc(const B&, const B&, funcP);
, реализованный в B.cpp и funcP, является typedef для указателя на функцию выше:
typedef const A (*funcP) ( const A& a, const A& b);
но когда я попытался вызвать Calc (..) внутри функции, я получил эту ошибку:
msgstr "неразрешенный тип перегруженной функции". я называю это так:
friend const B operator+ (const B& a,const B& b){
...
return B::Calc(a,b, &operator+);
}
что я делаю не так?