这是我的代码:
void got_Packet(u_char *args, const struct pcap_pkthdr *header, const u_char *packet);
//in home.h
void got_Packet(u_char *args, const struct pcap_pkthdr *header, const u_char *packet){
}
//in home.cpp
pcap_loop(handle, -1, got_Packet, NULL);
//in home.cpp
这是我得到的错误。
error: invalid use of non-static member function
pcap_loop(handle, -1, got_Packet, NULL);
^"
我添加了语法static
有谁可以在这个问题上赐教我?为什么我只能在home.h函数原型中添加语法static
,而不是在home.cpp函数声明和调用中添加?
答案 0 :(得分:1)
在类定义中,关键字static声明未绑定到类实例的成员。 在类定义之外,它具有不同的含义:请参阅存储持续时间。
如果您打算将该方法设为静态,那么正确的方法是在类定义中以这种方式声明它。静态方法无法访问特定于类实例的数据。