美文网首页
C++前置声明

C++前置声明

作者: 雯饰太一 | 来源:发表于2023-06-30 07:29 被阅读0次
    1. 缩短编译时间:前置声明可以避免头文件的重复包含,从而缩短了编译时间。

    2. 降低依赖性:前置声明可以在不包含定义的情况下引用一个类型,从而减少了代码之间的依赖性。

    3. 提高可读性:前置声明可以使代码更加简洁明了,更容易阅读和理解。

    结构体和类的前置声明

    struct Struct_A;
    class Class_B;
    namespace N
    {
        class Class_C;
    }
    

    容器类的前置声明

    QT中的map前向声明的方法,是从源码中超出来的。

    template <class Key, class T> class QMap;
    typedef QMap<QString, QVariant> QVariantMap;
    

    注:对于容器类,QT还是标准库都已经处理的很好了,可以直接使用include引入,但是对于Map中使用到的类或者是结构体,是需要进行前置声明的。

    其他内容

    关于前置声明的一些心得

    在使用QT做项目的过程中,经常需要复用UI,这个时候创造出来的UI文件,一般是使用pointer的方式。这个时候同样会用前置声明的方式在一个主UI中进行声明,并在源文件中引入其他的UI文件,在同一个工程内,进行UI的复用,简直是不亦乐乎。

    有的时候因为一个UI中布置了太多的内容,没有使用嵌套的方式,但是通过designer编辑的UI通常是划分模块的,这种情况下,可以针对不同的功能模块,建立起多个QObject派生类,并在主UI中进行前置声明,并且声明成友元类,在各个功能对象中便可直接对UI中的内容进行操作。

    其他叫法

    • C++ class forward declaration
    • C++ 前向声明

    参考链接

    相关文章

      网友评论

          本文标题:C++前置声明

          本文链接:https://www.haomeiwen.com/subject/difiydtx.html