头文件中,用class editPainter比#include "editpainter.h"好多少?

中才德创 2012-08-09 08:52:14
加精
.h
#include <QtGui/QWidget>

class QPushButton;
class editPainter;
class QLabel;
class QGroupBox;
class QRadioButton;

class Widget : public QWidget
{
Q_OBJECT

public:
Widget(QWidget *parent = 0);
~Widget();

private slots:
void OnClickImport();
void OnClickApply();
void OnPixmapChange(QPixmap *pixmap);
void OnRadioFixClick();
void OnRadioFreeClick();

private:
QPushButton *m_pButtonImport;
QPushButton *m_pButtonApply;
editPainter *m_pPhotoEditor;
QLabel *m_pLabelPixmap;
QGroupBox *m_pGrpBoxScaleType;
QRadioButton *m_pRadioFix;
QRadioButton *m_pRadioFree;
QPixmap *m_pPixmapTobesaved;
};
...全文
2363 39 打赏 收藏 转发到动态 举报
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
a517813017 2012-08-17
  • 打赏
  • 举报
回复
头晕了!
C语言好复杂
lwlddlove 2012-08-16
  • 打赏
  • 举报
回复
强悍!!!!!!!!!!!!1
lexdene 2012-08-16
  • 打赏
  • 举报
回复
类的声明和定义是有区别的。

在仅有声明,没有定义的条件下,
可以写:
1、指针。
2、引用。

在有定义的条件下,才可以使用类的全部功能。
不过,在每一个用到这个类的地方都写这个类的完整定义,会造成两个问题:
1、降低编译速度。
2、造成编译依赖。

所以,结论:
1、当仅需要用到这个类的指针或引用的时候,推荐使用类声明。
2、其它情况,必须使用完整的类定义。
mbugaifc 2012-08-15
  • 打赏
  • 举报
回复
学习了。谢谢。
cj2745170 2012-08-14
  • 打赏
  • 举报
回复
活动计划h动画
信念 2012-08-14
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 的回复:]

是编译速度的问题。但第一种,貌似只能用于对象指针成员啊,对象成员就必须要.h
class ClassA;

class B
{
ClassA * pa;
ClassA a;
}
第二个A就不行。

还有个问题,有些轻量IDE的代码补完对第一种不好使,CPP里Include的东西,无法被感知。内联函数也不支持啊,内联函数里要用到具体的方法的。
[/Quote]

一个是声明,一个是定义,肯定不一样。
碎炎 2012-08-14
  • 打赏
  • 举报
回复
effective c++里有讲
ljhhh0123 2012-08-14
  • 打赏
  • 举报
回复
这属于是先有鸡还是先有蛋的问题。
slientman 2012-08-14
  • 打赏
  • 举报
回复
这个是主要原因啦。

[Quote=引用 21 楼 的回复:]

是编译速度的问题。但第一种,貌似只能用于对象指针成员啊,对象成员就必须要.h
class ClassA;

class B
{
ClassA * pa;
ClassA a;
}
第二个A就不行。

还有个问题,有些轻量IDE的代码补完对第一种不好使,CPP里Include的东西,无法被感知。内联函数也不支持啊,内联函数里要用到具体的方法的。
[/Quote]
wxpypwx 2012-08-14
  • 打赏
  • 举报
回复
哦,这样子
足球中国 2012-08-13
  • 打赏
  • 举报
回复
c++的编译效率真是蛋疼的事。
IVERS0N 2012-08-13
  • 打赏
  • 举报
回复
加快链接速度
jsjh123 2012-08-13
  • 打赏
  • 举报
回复
直接看不懂啊、、、
tf789852 2012-08-13
  • 打赏
  • 举报
回复
都发发送发送方
vserzhao 2012-08-13
  • 打赏
  • 举报
回复
重力加速度
  • 打赏
  • 举报
回复
是编译速度的问题。但第一种,貌似只能用于对象指针成员啊,对象成员就必须要.h
class ClassA;

class B
{
ClassA * pa;
ClassA a;
}
第二个A就不行。

还有个问题,有些轻量IDE的代码补完对第一种不好使,CPP里Include的东西,无法被感知。内联函数也不支持啊,内联函数里要用到具体的方法的。
higge 2012-08-13
  • 打赏
  • 举报
回复
强悍!!!!!!!!!!!!!
wujinfeiling 2012-08-13
  • 打赏
  • 举报
回复
看不懂
AnYuShengXiaXiXi 2012-08-12
  • 打赏
  • 举报
回复
学习学习,谢谢分享!
加载更多回复(13)

16,201

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧