首页| 论坛| 消息

标题:【提问】什么时候要包含对应的头文件,什么时候可以不用包含?谢谢!
作者:geforcex
日期:2005-11-20 18:53
内容:

我看到了Qt Assistor 上的例子8,其中有这样几个关于包含文件的问题
1. 在cannonfield.h中有一句:
protected:
void paintEvent(QPaintEvent *event);
既然有“QPaintEvent”出现,难道不需要将其对应的头文件QPainter包含进去吗?例子没有包含,我自己加上和不加编译都能通过
2. 在cannonfield.cpp中
void CCannonField::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.drawText(200, 200, "Angle = "+QString::number(currentAngle));
}
同样,出现了新的identifier:QString。奇怪,该对应头文件仍然没有被包含进去,编译一样能通过
所以我想请问大家,到底什么样的可以不包括,什么样的必须包括,谢谢!


#1 [XChinux 11-20 23:00]
这个怎么说呢,因为有的头文件里已经把你需要的 头文件包含进去了。
比如你用到A类,同时又用到了B类,B类里又声明了A类,那么你的A类就不用再包含头文件了。
等等如此,一层一层地包含得很多的。
#2 [geforcex 11-23 17:27]
多谢斑竹回答!
按照我现在这种情况应该可以推断出或者里面就已经包含了QString的定义了吧?
看来#ifndef那对宏还是十分有必要的哦
#3 [ok2005 11-25 14:12]
有启发!!!!!
#4 [fanyu 11-25 15:02]
已能否编译通过为原则,如果能通过就不要加了(虽然加了也可以编译通过,但会影响到预编译处理),如果提示找不到文件,就要加上它的头文件了。

回复 发表
主题 版块