关于类的问题,求大神解答

电脑技术爱好者 2013-11-03 07:32:27
[size=24px][b]/main函数/
#include<iostream.h>
#include"publication.h"
#include"book.h"
#include"tape.h"
void main()
{
char a[20]="图书",b[20]="磁带",c;
cout<<"请选择要存储的数据:a 图书,b 磁带"<<endl;
cin>>c;
if(c=a){
Book k;
k.inputDate();
k.display();
}
if(c=b){
Tape e;
e.inputDate();
e.display();
}

}
#ifndef publication_h
#define publication_h
#include<iostream>
using namespace std;
class publication{
char name[20];
char title[20];
int price;
int date[10];
public:
publication(char a[20],char b[20],int c,int d[10]):name(a),title(b),price(c),date(d){}
void setname(char a[20]){name=a;}
void settitle(char b[20]){title=b;}
void setprice(int c){price=c;}
void setdate(int d[10]){date=d;}
char* getname(){return name;}
char* gettitle(){return title;}
int getprice(){return price;}
int* getdate(){return date;}
~publication(){cout<<"Destructor publication...<<endl;"}
void inputData(){
char a[20],b[20];
int c,d[10];
cout<<"请输入标题:"<<endl;cin>>a[20];
cout<<"请输入出版物名称"<<endl;cin>>b[20];
cout<<"请输入单价"<<endl;cin>>c;
cout<<"请输入出版日期"<<endl;cin>>d[10];
}
void display(){
cout<<setw(12)<<"标题"<<setw(12)<<"出版物名称"<<setw(12)<<"单价"<<setw(12)<<"出版日期"<<endl;
cout<<title[20]<<"\t"<<name[20]<<"\t"<<price<<"\t"<<date[10]<<endl;
};
#endif


/BOOK.H/
#ifndef book_h
#define book_h
#include "publication.h"
#include <iostream.h>
class Book:public Publication{
int page;
public:
Book(char a[20],char b[20],int c,int d[10],int e):Publication(a,b,c,d),page(e){}
void setpage(int e){page=e;}
int getpage(){return page;}
~Book(){cout<<"Destructor book..."<<endl;}
void inputDate(){
int e;
Publication::inputData();
cout<<"请输入页数"<<endl;cin>>e;
}
void display(){
Publication::display();
cout<<"页数"<<endl;
cout<<page<<endl;
};
#endif



/Tape.h/
#ifndef tape_h
#define tape_h
#include <iostream.h>
#include "publication.h"
class Tape:public Publication{
int playtime;
public:
Tape(char a[20],char b[20],int c,int d[10],int e):Publication(a,b,c,d,),playtime(e){}
void setpalytime(int e){playtime=e;}
int getplaytime(){return playtime;}
void inputDate(){
int e;
Publication::inputData();
cout<<"请输入播放时间"<<endl;cin>>e;
}
void display(){
Publication::display();
cout<<"播放时间"<<endl;
cout<<platime<<endl;
}
};
#endif

这个程序我已编译出现了下面的问题:
d:\microsoft visual studio\vc98\bin\2\book.h(5) : error C2504: 'Publication' : base class undefined
d:\microsoft visual studio\vc98\bin\2\tape.h(5) : error C2504: 'Publication' : base class undefined
d:\microsoft visual studio\vc98\bin\2\出版系统.cpp(5) : error C2059: syntax error : 'PCH creation point'
d:\microsoft visual studio\vc98\bin\2\出版系统.cpp(6) : error C2334: unexpected token(s) preceding '{'; skipping apparent function body
d:\microsoft visual studio\vc98\bin\2\出版系统.cpp(23) : fatal error C1004: unexpected end of file found
实在不知道该怎么修改,求大神解救!
...全文
121 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
那个我改过了,但还是有那个问题,好像不关那个大小写的事...
max_min_ 2013-11-03
  • 打赏
  • 举报
回复
你定义的类的头文件里面是不是 小写的 publication 而后面子类继承他的时候用的是大写 Publication? 再检查看看,基本语法应该很简单的!
Isnis-fallen 2013-11-03
  • 打赏
  • 举报
回复
声明 class Publication 在book.h里
Isnis-fallen 2013-11-03
  • 打赏
  • 举报
回复
是否和编译顺序有关阿

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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