Qt 编码惯例(Qt Coding Convensions)

本文详细介绍了Qt的编码惯例,包括C++特性的使用、Qt源代码书写规则、编译器与平台特定问题的处理、程序编码美学以及二进制和源代码的兼容性策略。强调了使用static_cast等安全转换、避免析构函数非虚、保持API稳定性和避免标识符冲突等问题,旨在提升Qt应用的可靠性和可维护性。
摘要由CSDN通过智能技术生成

Qt 编码惯例

原文链接:http://developer.qt.nokia.com/wiki/Coding_Conventions

翻 译:wd007     XChinux

审 校:齐 亮

鸣 谢:dbzhang800    yafeilinux   提供博客格式以及部分内容审校的意见

◆ C++ 特性

clip_image001_thumb[2]

    ■ 不要使用异常

    ■ 不要使用rtti(运行时类型识别;主要包括,typeinfo结构,dynamic或者typeid操作符,包括抛出异常等)

    ■ 慎明的使用模板类,只有当必需时才使用它,而不是仅仅因为你掌握了它的使用方法。

提示:使用编译器的自动测试功能来确定某个C++特性是否被支持。

◆ Qt源代码书写惯例

 
  clip_image002_thumb[2]

    ■ 所有代码都仅仅使用ascii格式(7位字符,如果不确定,则可以运行man ascii来验证 )

               ● 原理:我们已经有了太多的新的语系作品以及UTF-8和Latin1混合的不健壮的系统。当你在喜欢使用的编辑器中使用字符位数大于127的系统时,往往还没有来得及保存,系统就会崩溃掉。

               ● 对于字符串:使用/nnn(这里nnn是八进制的字符,在任何系统中都可以代表你要输入的字符)或者使用/xnn(这里xnn是十六进制的字符)。

               举例:

      QString s = QString::fromUtf8(”/213/005”);

               ● 对于文档中的变音,或者其他非ASCII的字符,或者使用qdoc的unicode命令或者使用适当的宏;举例:对ü使用/uuml。

    ■ 所有QObject的子类都必须包含一个Q_OBJECT的宏,即便它并没有使用信号或者槽,否则的话,qobject_cast就会运行失败。

    ■ 在连接语句中,规范化信号和槽中的参数(可以查看QMetaObject::normalizedSignature以获得规范化的信息)以获得更快速的信号/槽遍历。你也可以使用$QTDIR/util/normalize来规范已有的代码

  ◎ 包含的头文件

 
  clip_image003_thumb[2]

    ■ 在公用的头文件中,头文件包含总是使用这样的形式:

      #include <QtCore/qwhatever.h>

    对于Mac OS X系统框架而言,QtCore这样的库前缀是必需的

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值