这个用什么语言应该都没有什么问题吧? 最近在用qt写程序,一样在qt的程序中使用xlib、标准c的函数 …… 而且也没有使用什么全局变量。
个人觉得用C++写面向过程的程序的话还不如直接使用C,灵活性更大,要用C写面向对象的程序的话我的头很大,到现在都还没有搞清楚C的面向对象是怎么弄的 …… 在 2011年12月21日 上午10:01,caimouse <ccaimo...@gmail.com>写道: > C++学习不过关。 > 1. 应使用静态类成员作为回调函数。 > 2. 使用参数,或者全局变量传送类实例指针给静态成员函数。 > > 因为静态类成员变量是全局的生命周期,而类没有实例化,仅是一种类型,不是实 例,因此不能在静态成员里访问成员,并且类可以实例多个,**如果直接访 > 问成 员,就会导致全局访问局部的问题。 > > > 于 2011/12/20 20:53, 曹朋 写道: > > 问题描述: >> 笔者近日,在做网络嗅探器,其中用到一函数,pcap_**loop(pcap_t *,int,pcap_hander >> callback,u_char *); >> callback参数如下:(u_char *,const pcap_pkthdr *,const u_char *);其作用是,来一个数据 >> 包,调用一次callback,来一次调用一次。 >> 但,令笔者困惑的是,**这个callback并不能被定义成类的成员,**一旦定义成类的成员,编译便会报错 >> argument of type‘void (classname::)(u_char *,const pcap_pkthdr *,const >> u_char *) does not match void (*)(u_char *,const pcap_pkthdr *,const >> u_char >> *)’。 >> 可是,不定义为成员,就访问不了类的成员。故,笔者换做了友元、**static,编译,运行等,均不会有问题。可问题是,** >> 我想在callback当中使用类的成员。 >> callback是用来处理网络数据的。也就是说,**我想在callback当中处理了数据之后,**在赋值给类的某个成员。然后,显示在界面上。 >> >> >> 问题: >> 如何在callback当中使用类的成员?或者,**这个callback应该一何种方式来定义?在或者,**如何通过QT的信号与槽机制来实现? >> 或者,有没有一种方案来解决这个问题? >> 或者,谁可以提供一个思路? >> >> 此为:笔者毕设,”基于Linux的网络嗅探器的设计与实现“ >> 自己当时的实现方案: >> 1、使用libpcap首先在consle下实现抓包分析。 >> 2、学习QT界面。 >> 3、二者结合。。。就是这二者结合除了大问题了(当时也意识到,**会出问题。。。libpcap(也就是C)+QT 混合编程)。 >> -------------- 下一部分 -------------- >> 一个HTML附件被移除... >> URL:<https://lists.ubuntu.com/**archives/ubuntu-zh/** >> attachments/20111220/24e95459/**attachment.html<https://lists.ubuntu.com/archives/ubuntu-zh/attachments/20111220/24e95459/attachment.html> >> > >> > > -- > ubuntu-zh mailing list > ubuntu-zh@lists.ubuntu.com > https://lists.ubuntu.com/**mailman/listinfo/ubuntu-zh<https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh> > -------------- 下一部分 -------------- 一个HTML附件被移除... URL: <https://lists.ubuntu.com/archives/ubuntu-zh/attachments/20111221/1bc1d9a6/attachment.html> -- ubuntu-zh mailing list ubuntu-zh@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh