Я следую за этим example. Но когда я компилирую, он возвращает ошибку:Недопустимое использование нестатической функции-члена C++
Invalid use of non-static member function
на линии
void(Machine:: *ptrs[])() =
{
Machine::off, Machine::on
};
Я пытался добавить static
к void on();
в классе
class Machine
{
class State *current;
public:
Machine();
void setCurrent(State *s)
{
current = s;
}
static void on(); // I add static here ...
static void off(); // and here
};
Но он жалуется, что
Invalid use of member Machine::current in static member function
Можете ли вы помочь мне исправить это?
Ah, oui. Это работает, но не могли бы вы объяснить, почему? Спасибо – GAVD
@GAVD Пояснение добавлено. – songyuanyao
@songyuanyao pcap_loop() в библиотеке pcap вызывает аналогичную ошибку. Не могли бы вы посмотреть на это и сообщить мне, если у вас есть идеи? Tqvm http://stackoverflow.com/questions/43108998/c-pcap-loop-arguments-issue – Wei