если у меня есть, например, класс A, который содержит функции:
//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(..) внутри функции, я получаю эту ошибку: "неразрешенный тип перегруженной функции". я называю это так:
friend const B operator+ (const B& a,const B& b){
...
return B::Calc(a,b, &operator+);
}
Что я делаю неправильно?
const B&
каким-либо образом связано сconst A&
. - person Jonathan Leffler   schedule 19.09.2010