QT_BEGIN_NAMESPACE

命名空间

        命名空间​(namespace) 可以帮助我们区分不同库中相同名称的函数, 类, 变量等. 使用了命名空间即定义了上下文. 命名空间就是定义了一个范围.定义了一个库的索引。使用时只需要引用不同的库,以便展开库中的函数,类等。防止命名污染。

        例如,C++标准库。为了解决 C++ 标准库中的标识符与程序中的全局标识符之间以及不同库中的所有标识符之间的命名冲突. 标准 C++ 库的所有标识符都定义在一个名为 std 的命名空间中. 在程序中用到 C++ 标准库时, 使用 std 作为限定.防止应用程序中的命名和标准库冲突。

        命名空间是 ANSI C++ 引入可以由用户命名的作用域, 用来处理程序中常见的同名冲突. 在 C++ 程序中, 有大量的变量, 函数和类名. 命名空间可以很好的解决相互的冲突。同时也更利于不同功能的分组。

QT_BEGIN_NAMESPACE

        QT_BEGIN_NAMESPACE就是QT系统自己定义的宏。

        QT_BEGIN_NAMESPACE是QT系统自己使用的命名空间预定义宏。也就是说以更快捷的方式定义QT自己的命名空间。关于命名空间可以参考C++的命名空间。这其实是指的同一种技术。当然我们也可以用相同方式定义一套宏。比如:MY_Begin_NAMESPACE等等。

//定义以下内容:
QT_BEGIN_NAMESPACE
    class MyAction;
    class MyMenu;
    class MyPlainTextEdit;
QT_END_NAMESPACE
 
//在编译时就会变成这样:
namespace QT_NAMESPACE 
{
    class MyAction;
    class MyMenu;
    class MyPlainTextEdit;
}

/// 
//QT_NAMESPACE是Qt自己定义的命名空间
 
# define QT_BEGIN_NAMESPACE namespace QT_NAMESPACE {
# define QT_END_NAMESPACE }

如果使用QT_BEGIN_NAMESPACE 声明,也就意味着我们把所有的声明体放进了QT命名空间。这样声明的东西更像是QT系统库的一部分一样。也许这样解释更容易理解。命名空间主要的任务就是防止命名污染,同时更容易对不同功能的程序分组。QT_BEGIN_NAMESPACE就是C++命名空间。

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开软古剑楠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值