c++向前声明
使用qt的类时需要向前声明,如#include<QCheckBox>classQCheckBox;//向前声明为什么使用std::ifstream这样的类不需要向前声明,...
使用qt的类时需要向前声明,如
#include<QCheckBox>
classQCheckBox;//向前声明
为什么使用std::ifstream这样的类不需要向前声明,烦请解答一下什么样的类需要向前声明,哪些不需要。谢谢 展开
#include<QCheckBox>
classQCheckBox;//向前声明
为什么使用std::ifstream这样的类不需要向前声明,烦请解答一下什么样的类需要向前声明,哪些不需要。谢谢 展开
4个回答
展开全部
已经包含了类的声明或定义就不需要,你包含std的头文件时已经把std::ifstream声明包含在里面了,所以不需要。而你贴的例子,唯一解释是你include的头文件并未包含QCheckBox的声明。
class QCheckBox; 这句是告诉编译器QCheckBox是一个类,但是个什么类还不知道,所以如果只有前置声明,而没有把类的定义包含进来之前,声明的class只能作为定义指针使用,无法定义对象也不能调用里面的成员。如果要定义对象或调用里面的成员,类的定义需你自己包含进来,编译器不会帮你搜索的。
class QCheckBox; 这句是告诉编译器QCheckBox是一个类,但是个什么类还不知道,所以如果只有前置声明,而没有把类的定义包含进来之前,声明的class只能作为定义指针使用,无法定义对象也不能调用里面的成员。如果要定义对象或调用里面的成员,类的定义需你自己包含进来,编译器不会帮你搜索的。
展开全部
class QCheckBox;//向前声明
这句是告诉编译器 我的QCheckBox在其他地方定义了,用到的时候请自行搜索
编译器找得到就不用 找不到就要
这句是告诉编译器 我的QCheckBox在其他地方定义了,用到的时候请自行搜索
编译器找得到就不用 找不到就要
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前向引用声明 你自己都写了,是std,你只要在前面生命了这个库就不用声明了;可能qcheckbox不是标准库吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询