C++前置声明

2023-06-30  本文已影响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中的内容进行操作。

其他叫法

参考链接

上一篇下一篇

猜你喜欢

热点阅读