• 5158阅读
  • 3回复

#include vs class [复制链接]

上一主题 下一主题
离线neeme
 

只看楼主 正序阅读 楼主  发表于: 2016-06-15
大家好:
    在头文件
#include <QLineEdit>
#include <QLabel>

class QLineEdit;
class QLabel;
两者有什么区别? 谢谢!

开发平台:Ubuntu 16.04 64bit + Qt 5.9.4
运行平台:Ubuntu 16.04 64bit
离线尘中远

只看该作者 3楼 发表于: 2016-06-16
尽量使用class形式的后缀声明,后缀声明有个前提,头文件不能有这个类的实例,也就是你不能如下:
class A;
class B{
……
A m_a;
};
你只能如下:
class A;
class B{
……
A* m_a;
};
然后在cpp文件#include

这样做好处是提高编译速度,会大大的提高编译速度!
离线stlcours

只看该作者 2楼 发表于: 2016-06-16
虽然用#include更正统一些,class显得不伦不类,但是由于CPP的固有缺陷,#include编译奇慢无比。一个中性项目(也就几万行代码),上个厕所再倒杯水回来,编译还没结束,原因仅仅是因为改动了通用类的头文件。如果是class就不会有这个问题。现在见到改基础类的声明就觉得有点怕,或者提前准备好做点别的事情~
离线realfan

只看该作者 1楼 发表于: 2016-06-15
前者是定义包含,后者是声明。
在头文件中,如果只用到两个类的指针,只要声明就可以了。在cpp中,再include相应的类头文件。
一般是建议在文件中声明,源文件中,包含实现。
快速回复
限100 字节
 
上一个 下一个