• 4500阅读
  • 6回复

[提问]为什么 QString 不能声明为前置类 [复制链接]

上一主题 下一主题
离线tangbao203
 

只看楼主 倒序阅读 楼主  发表于: 2012-08-10
在头文件 前置声明 一个 class QString ,
cpp 里头 #include <QString>
老是报错 说 的大致意思 QString 类型不完整.  

头文件 没用使用 QString 任何成员.
离线dbzhang800

只看该作者 1楼 发表于: 2012-08-10
QString 肯定可以前置声明。

但是看起来你的头文件中用到的了QString的定义。 比如,定义了QString成员变量或成员函数中提供了QString类型的默认值等等
离线jdwx

只看该作者 2楼 发表于: 2012-08-10
class QString
适用于:QString  *str;
不适用于:QString str;
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线tangbao203

只看该作者 3楼 发表于: 2012-08-10
回 2楼(jdwx) 的帖子
那么在问一句 (一般化)

是不是头文件中声明在栈内存里头的全部都不能用 前置类,(例如  QString str;)
前置类只适用用在 申明在 在 堆内存 里头 (new 操作符)
离线roywillow

只看该作者 4楼 发表于: 2012-08-10
我想应该是这样的
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线jdwx

只看该作者 5楼 发表于: 2012-08-10
回 3楼(tangbao203) 的帖子
据我理解是这样的。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线淳于半邪

只看该作者 6楼 发表于: 2012-08-13
没研究过耶 好像从来都不用声明什么 直接调用
快速回复
限100 字节
 
上一个 下一个