Не пишу на сабже, нужно что-то вроде следующего:
// A.h
class A {
public:
char makeMeFeelGood1();
char makeMeFeelGood2();
char makeMeFeelGood3();
};
// B.h
extern "C" {
typedef char (A::*waitCallback)(void);
}
class B {
public:
void fun();
void waitForever(waitCallback callback);
A obj;
};
// B.cpp
void B::wait(waitCallback callback) {
char retVal = 0;
do {
// здесь надо вызвать obj.makeMeFeelGood[1-3]
retVal = obj.*callback // invalid use of non-static member function
} while (retVal != 1);
};
void B::fun() {
//вызвать wait и передать один из 3-х методов туда.
}
как сделать?
Компилю для AVR, со всеми вытекающими.