[转帖]Qt开发小提示_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3026 | 回复: 0   主题: [转帖]Qt开发小提示        下一篇 
clover
注册用户
等级:少校
经验:843
发帖:73
精华:0
注册:2013-6-28
状态:离线
发送短消息息给clover 加好友    发送短消息息给clover 发消息
发表于: IP:您无权察看 2013-7-9 13:37:04 | [全部帖] [楼主帖] 楼主

0.Qt和C++从来不冲突,所以C++的技巧Qt同样适用。

1.Qt开发中关于include:查找头文件,通常而言,好的做法是在包含了Qt头文件之后再包含非Qt头文件。由于Qt(为编译器和预处理器)定义了许多符号,这使得避免名称冲突变得更容易,也更容易找到文件。

2.Qt、标准库以及Boost.org中都提供了智能指针,它用来保存和管理指向堆对象的指针。这个类在Qt中对应的是QPointer,在标准库中是std::auto_ptr,在Boost中是shared_ptr。使用其中任何一个类,都可以使C++内存管理变得更轻松且更安全。

3.重载逗号运算符是允许的,但是强烈建议不要这样做,除非你是C++行家。

4.我们可以为内置运算符赋予一种新的含义,这样它就可以使用具有不同类型的操作数。但是,无法改变内置运算符的结合性和优先级。

5.按指针传递还是按引用传递?如果可以选择,则通常更倾向于使用引用而不是指针,因为这样可以降低程序偶然发生内存崩溃的概率。只有在管理那些需要对指针进行操作的对象时(创建、销毁或者添加到一个托管容器中),才会选择使用指针,并且,通常可以将这些例程封装为成员函数。

6.要小心,不要让你的函数返回一个指向局部(临时)变量的引用。这很可能会被不小心忘记。

7.一般而言,如果一个类中包含一个或者多个virtual函数,则也应该包含一个虚析构函数。这是因为,当对多态对象集合进行操作时,通常是通过基类指针删除这些对象,这会导致对析构函数的间接调用。如果析构函数不为virtual类型,则编译时绑定将决定应该调用哪一个析构函数,从而可能导致派生对象的不完整析构。

8.C++初始化的过程按照下面的顺序进行:a.首先是积累的初始化,按照它们在派生类的首部中出现的顺序依次进行;b.数据成员的初始化,按照声明的顺序进行。

9.对于Qt指针容器,可以使用qDeleteAll(container),它是一个对容器中的每一个元素调用delete函数的算法。

10.foreach()宏需要复制它所遍历的容器。如果此时复制构造函数为private类型,那么这种复制操作是不可行的,所以在使用QObject时,一定要记住这一点。

11.即使名称和形参列表相同,但是函数的const和非const变体也是不同的函数。换句话说,我们可以使用const来重载函数。

12.包含纯虚函数的类被称为抽象类,因为我们不能定义包含纯虚函数的类的对象,抽象类存在的唯一用途,就是定义派生类。如果抽象类的派生类将基类的纯虚函数仍然定义为纯虚函数,则该派生类也是抽象类。

13. 在赋予指针另一个地址值之前,我们必须从自由存储器中删除对象。如果不这样做,以后我们将无法清理自由存储器,因为已经失去了原来对象的地址。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论