欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Qt C++ 命名空间

最编程 2024-06-01 21:15:36
...

关于命名空的自定义方法,可见参考资料[1],关于Qt Creator根据*.ui文件生成的ui_xxx.h中的宏QT_BEGIN_NAMESPACEQT_ENG_NAMESPACE的定义,可见参考资料[3]。下面解析ui_xxx.h文件中最后面的以下内容的含义:

namespace Ui {
    class MainWindow: public Ui_MainWindow {};
} // namespace Ui

    就是在QT_NAMESPACE这个命名空间中,再定义一个子命名空间,里面定义了一个类MainWindow,这个类public继承于Ui_MainWindow,而MainWindow本身没有定义新的成员。

    由上面的解析就可以知道,在MainWindow.cpp文件中并没有直接定义Ui_MainWindow这个类对象,而是改为定义Ui命名空间中的MainWindow类的对象!

    同时,由于ui_xxx.h文件会被其它源文件所包含,因此不在MainWindow.cpp中直接包含此头文件,避免加长编译时间。取而代之的是,在MainWindow.cpp文件中,再重定义了一个命名空间,并在此命名空间中声明Ui::MainWindow,如下面代码所示:

namespace Ui {
class MainWindow;
}

原文地址:https://www.cnblogs.com/niuzhihong123-r/p/13472078.html