Error:不允许使用不完整的类型

Potter
博客专家认证
2012-11-05 12:16:13
include "stdafx.h"
#include "PSprite.h"
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

PSprite::PSprite(char* fileName)
{
ifstream* fin("a.data",ios::binary);
}
提示如下图效果:
#
请教为什么添加了包,还会提示:不允许使用不完整的类型 ? 感激~
...全文
12036 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
CatLovers123 2014-12-23
  • 打赏
  • 举报
回复
加上头文件就行了。
tiny小小白 2014-04-09
  • 打赏
  • 举报
回复
引用 10 楼 feitianhu213 的回复:
我最近也遇到相同的问题!我用的是结构体,绝对完整(在一个函数里面用可以),可是,作为返回类型就说不完整~~~,
我也遇到过一样的问题,但好像是头文件的问题 #include "stdafx.h" #include<stdlib.h> #include<iostream> #include<fstream> stdlib文件加上之后就不报错了..
飞天狐213 2013-08-18
  • 打赏
  • 举报
回复
我最近也遇到相同的问题!我用的是结构体,绝对完整(在一个函数里面用可以),可是,作为返回类型就说不完整~~~,
happy0755 2013-03-05
  • 打赏
  • 举报
回复
引用 6 楼 avphoenixi 的回复:
PSprite.h 文件格式有没有问题,class 结束有没有带上分号
楼主很厉害。
Potter 2012-11-05
  • 打赏
  • 举报
回复
引用 3 楼 JiMoKuangXiangQu 的回复:
引用 2 楼 JQGuardian 的回复:MSDN上看的,fstream有以下构造函数: fstream(); fstream( const char* szName, int nMode, int nProt = filebuf::openprot ); fstream( filedesc fd ); fstream( filedesc fd, c……
恢复感谢你的回复....
JiMoKuangXiangQu 2012-11-05
  • 打赏
  • 举报
回复
引用 2 楼 JQGuardian 的回复:
MSDN上看的,fstream有以下构造函数: fstream(); fstream( const char* szName, int nMode, int nProt = filebuf::openprot ); fstream( filedesc fd ); fstream( filedesc fd, char* pch, int nLength ); 好像你的构造函……
应该不是,下面的代码是可以编译通过的.
#include <fstream>
using namespace std;

int main()
{
	ifstream fin("a.data", ios::binary);
	return 0;
}
HMGuardian 2012-11-05
  • 打赏
  • 举报
回复
MSDN上看的,fstream有以下构造函数: fstream(); fstream( const char* szName, int nMode, int nProt = filebuf::openprot ); fstream( filedesc fd ); fstream( filedesc fd, char* pch, int nLength ); 好像你的构造函数不在这里耶…… 看你的样子用的是fstream( const char* szName, int nMode, int nProt = filebuf::openprot );这个函数用于初始化对象fin,但你差了一个参数,所以提示“不允许使用不完整的类型”
JiMoKuangXiangQu 2012-11-05
  • 打赏
  • 举报
回复
我看到你上面的代码和下面的有点不一样: 上面的代码: ifstream* fin("a.data",ios::binary); 下面的代码: ifstream fin("a.data",ios::binary); 下面的应该没有什么问题.
cbzjzsb123 2012-11-05
  • 打赏
  • 举报
回复
Potter 2012-11-05
  • 打赏
  • 举报
回复
引用 6 楼 avphoenixi 的回复:
PSprite.h 文件格式有没有问题,class 结束有没有带上分号
兄弟,太感谢你了~ 由于PSprite里面写了,好几个类,主要是想将其封装好..里面有几个类忘打分号了... 我想哭啊~
__天涯寻梦 2012-11-05
  • 打赏
  • 举报
回复
PSprite.h 文件格式有没有问题,class 结束有没有带上分号
Potter 2012-11-05
  • 打赏
  • 举报
回复
quote=引用 3 楼 JiMoKuangXiangQu 的回复:]
引用 2 楼 JQGuardian 的回复:MSDN上看的,fstream有以下构造函数:
fstream();

fstream( const char* szName, int nMode, int nProt = filebuf::openprot );

fstream( filedesc fd );

fstream( filedesc fd, c……[/quote]
非常感谢你的回复.....我测试了两种方式
#include <iostream>
#include <bitset>
#include <fstream>
using namespace std;

void _tmain(int argc, char* argv[])
{
ifstream fin("a.dat",ios::binary);
return;
};
这种情况确实是可以的....
下面的这种却不行...
就算我将其不变成指针的形式如下
#include "stdafx.h"
#include "PSprite.h"
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

PSprite::PSprite(char* fileName)
{
ifstream fin("a.data",ios::binary);
}
也是会提示:
[

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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