Posiadamy prostą bibliotekę komunikacyjną dla naszych klientów.Oddzwonienie w C++ do członka klasy
Mój problem: Jak zapisać wskaźnik do metody z klasy naszego klienta?
Library.h
to plik nagłówkowy ze wszystkimi metodami, jakich potrzebuje nasz klient do nawiązania komunikacji.
library.cpp
to nasz kod. Gdzieś tutaj muszę zapisać wskaźniki do metody funkcji oddzwaniania od naszego klienta.
customer.cpp
to przykład, jak klient korzysta z naszej biblioteki.
library.h:
// This is the header file what our customer gets
class Library {
public:
template <class Object, class Function>
void SetCallback(Object &obj, Function f);
};
library.cpp:
struct T_CUSTOMER {
Object o; // <- ???
Function f; // <- ???
} customer;
void Library::SetCallback(Object &obj, Function f) {
//Saving the method from our costumer
customer.o = obj; // <- ???
customer.f = f; // <- ???
}
void someFunction(void) {
// here i want to call the method from the customer
customer.o->customer.f(); //<- ???
}
customer.cpp:
class AnyCustomerClass {
private:
Library lib;
public:
AnyCustomerClass() {
//< here the customer sets his method which I should call
lib.SetCallback(this, &AnyCustomerClass::callback());
}
callback() {
// do something
}
}
Dzięki za jakaś pomoc!
Czy możesz jeszcze raz rzucić okiem na kod, który napisałem wczoraj? [Link] (http://stackoverflow.com/questions/4919308/callback-in-c-to-a-class-member/4920803#4920803) I nigdy nie myślałem, że napisanie takiej funkcji oddzwaniania byłoby tak skomplikowane. Dziękuję bardzo! – Sascha
-1 za ignorowanie zarządzania pamięcią. – ltjax