这个出错什么原因导致的?

puppet_love 2006-10-04 12:19:18
在编译下程序时出现下错误,不知何因,请指教!谢谢!
--------------------Configuration: film_input - Win32 Debug--------------------
Compiling...
test.cpp
f:\c++\film_input\films.h(39) : error C2511: 'input' : overloaded member function 'void (class std::basic_ifstream<char,struct std::char_traits<char> > &)' not found in 'Film'
f:\c++\film_input\films.h(7) : see declaration of 'Film'
Error executing cl.exe.

test.obj - 1 error(s), 0 warning(s)



#include <iostream>
#include <fstream>
#include <string>
#include < cctype>
using namespace std;

class Film{
public:
Film(){
store_title();
store_director();
store_time();
store_quality();
}
void store_title(const string & t){
title=t;
}
void store_title(const char * t=""){
title=t;
}
void store_director(const string &d ){
director=d;
}
void store_director(const char * d=""){
director=d;
}
void store_time(int t=0){time=t;}
void store_quality(int q=0){quality=q;}
virtual void output();
virtual void input(ifstream);
static bool read_input(const char *,Film * [],int);
private:
string title;
string director ;
int time;
int quality;
};
//Reads title,director ,time ,quality;
void Film::input(ifstream& fin){
string inbuff;
cout<<"title : ";
getline(fin,inbuff);
store_title(inbuff);
cout<<"director : ";
getline(fin,inbuff);
store_director(inbuff);
cout<<"time : ";
getline(fin,inbuff);
store_time(atoi(inbuff.c_str()));
cout<<"quality : ";
getling(fin,inbuff);
store_quality(atoi(inbuff.c_str()));
}
//Writes title,director,time,quality;
void Film::output(){ //此处出错
cout<<"Title: "<<title<<endl;
cout<<"Director: "<<director<<endl;
cout<<"Time: "<<time<<endl;
cout<<"Quality: ";
for(int i=0;i<quality;i++)
cout<<"*";
cout<<endl;
}
bool Film::read_input(const char * file,Film * films[],int n){
string inbuff;
ifstream fin(file);
if(!fin)
return false;
int next=0;
while(getline(fin,inbuff)&& next<n){
if(inbuff=="Film")
films[next]=new Film();
else
continue;
films[next++]->input(fin);
}
fin.close();
return true;
}

#include "films.h"
int main(){
const unsigned n=5;
Film* films[5];
if(!Film::read_input("film.dat",films,n)){
cerr<<"Unable to read file films.dat :exiting."<<endl;
exit(EXIT_FAILURE);
}
for(unsigned i=0;i<n;i++)
films[i]->output();
return 0;
}
...全文
250 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
justrun2005 2006-10-06
  • 打赏
  • 举报
回复
哦,楼主分都没有,高手自然不愿意看了。

64,682

社区成员

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

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