qt中文参考文档:http://www.kuqin.com/qtdocument/index.html
看过才知道原来参考文档这么好用,其他的教程简直就是渣.....
一、在qtcreator中使用其他的c++开发库
在安装好Qt后,直接在命令行中输入qtcreator可以直接打开Qt的IDE
在使用qtcreator的过程中,常常需要把其他的一些开发库包含进来,这里我需要使用到一个抓包的库:libpcap。
但网上的教程大都是编译时在命令行中加入 -lpcap 其中 -l是固定的,pcap为你在qt程序中#include<pcap.h>这个头文件名。
在Qtcreator中,我们只需要在每一个工程都有的.pro文件中,加入 LIBS += -L/usr/local/lib -lpcap,再在程序中將所需要的头文件include进去,就可以使用libpcap进行编程了
二、QT信号、槽机制
所有包含信号和/或者槽的类必须在它们的声明中提到Q_OBJECT。
参考链接:http://www.kuqin.com/qtdocument/signalsandslots.html
三、#ifndef的用法
#ifndef 标识
#define 标识
......
......
......
#endif
这是一个经典的C语句,为了避免出现一个头文件被包含不止一次的情况。
即如果已经定义过某标识,则下面的头文件中的类不再被定义
如果还没定义过,则对头文件的类进行定义
这样就可以保证把两个头文件被引用到了一起时,不会出现同一头文件中的类被两次定义的情况
四、操作符的重载
运算符在重载的时候有两种方式,一是成员函数方式,二是成友元(friend)函数方式。
如果是设置成友元函数,一定要注意:
(1)当重载友元函数时,将没有隐含的参数this指针。这样,对双目运算符,友元函数有2个参数,对单目运算符,友元函数有一个参数。
(2)有些运行符不能重载为友元函数,它们是:=,(),[]和->。
operator前加&返回引用类型,不加返回对象
四、编译错误:
error: default argument given for parameter 1
默认参数只能在函数声明和函数定义中只能有一个,不能在函数声明和函数定义中都定义默认参数
invalid use of incomplete type
出现这个问题,表明编译器不知道所用的struct 或者是class的具体实现,通常出现在如下情况:假设我们有一个class some定义在some.h中,实现在some.cpp中,我们在other.cpp中要用到这个some 的方法,于是我们再other.h中声明可一个class some,并声明了要用到的方法,这样就会导致上述的问题,解决这个问题的方法是:在other.cpp中include some.h,这样编译器就会根据该头文件找到class some的具体定义,问题也就解决了。
持续更新中.....