c++向前声明

使用qt的类时需要向前声明,如#include<QCheckBox>classQCheckBox;//向前声明为什么使用std::ifstream这样的类不需要向前声明,... 使用qt的类时需要向前声明,如
#include<QCheckBox>
classQCheckBox;//向前声明

为什么使用std::ifstream这样的类不需要向前声明,烦请解答一下什么样的类需要向前声明,哪些不需要。谢谢
展开
 我来答
loboho
2012-11-12 · TA获得超过506个赞
知道小有建树答主
回答量:441
采纳率:100%
帮助的人:413万
展开全部
已经包含了类的声明或定义就不需要,你包含std的头文件时已经把std::ifstream声明包含在里面了,所以不需要。而你贴的例子,唯一解释是你include的头文件并未包含QCheckBox的声明。

class QCheckBox; 这句是告诉编译器QCheckBox是一个类,但是个什么类还不知道,所以如果只有前置声明,而没有把类的定义包含进来之前,声明的class只能作为定义指针使用,无法定义对象也不能调用里面的成员。如果要定义对象或调用里面的成员,类的定义需你自己包含进来,编译器不会帮你搜索的。
ingXII
2012-11-12 · 超过14用户采纳过TA的回答
知道答主
回答量:30
采纳率:0%
帮助的人:15.1万
展开全部
class QCheckBox;//向前声明
这句是告诉编译器 我的QCheckBox在其他地方定义了,用到的时候请自行搜索

编译器找得到就不用 找不到就要
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e6d1103
2012-11-12 · 超过21用户采纳过TA的回答
知道答主
回答量:147
采纳率:0%
帮助的人:23.8万
展开全部
前向引用声明 你自己都写了,是std,你只要在前面生命了这个库就不用声明了;可能qcheckbox不是标准库吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yinhanmeng
2012-11-12
知道答主
回答量:6
采纳率:0%
帮助的人:9095
展开全部
找找相关的专业的论坛吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式