Как передать функцию-член в качестве указателя на функцию?
Я хочу добавить функцию регистрации в рабочий класс, как передать функцию-член в качестве указателя на функцию? использовать mem_fun?
Вот пример кода:
class Work{
public:
void (*logger) (const string &s);
void do_sth(){if (logger) logger("on log")};
};
classs P{
public:
void log(const string &s)(cout << s);
};
int main(){
Work w;
P p;
w.logger = &p.log;
w.do_sth();
}
редактировать:
Я не хочу использовать void (P :: * xxx) (), потому что он придерживается класса P ...
Я знаю C ++ hide sth, настоящая функция журнала: void log (P & p, const string & s),
и настоящий проект такой:
Я создаю CDialog, и есть функция журнала, он копирует строку журнала в CEdit.
Так что мне нужно передать эту функцию журнала в класс Worker, этот класс выполняет некоторую работу последовательного порта,
Мне нужно войти и показать данные, отправленные и полученные ...