===========================Publication.h============================
#pragma once
#define LEN 20 //title、name等可能的最长字节数
#include <string>
#include <iostream>
using namespace std;
class Publication{
private:
char *title;
char *name;
float price;
char *date;
public:
Publication();
Publication(char*,char*,float,char*);
~Publication();
void inputData();
void display();
};
Publication::Publication(){
title=new char[LEN];
strcpy(title,"NULL");
name=new char[LEN];
strcpy(name,"NULL");
price=0.00;
date=new char[LEN];
strcpy(date,"____/__/__");
}
Publication::Publication(char *title,char *name,float price,char *date){
this->title=new char[strlen(title)+1];
strcpy(this->title,title);
this->name=new char[strlen(name)+1];
strcpy(this->name,name);
this->price=price;
this->date=new char[strlen(date)+1];
strcpy(this->date,date);
}
Publication::~Publication(){
delete []title;
delete []name;
delete []date;
}
void Publication::inputData(){
cout<<"Please input the title:";
cin>>title;
cout<<"Please input the name:";
cin>>name;
cout<<"Please input the price:";
cin>>price;
cout<<"Please input the date:";
cin>>date;
}
void Publication::display(){
cout<<"Title:"<<title<<endl;
cout<<"Name :"<<name<<endl;
cout<<"Price:"<<price<<endl;
cout<<"Date :"<<date<<endl;
}
===========================Book.h============================
#include "Publication.h"
class Book:public Publication{
private:
int page;
public:
Book();
Book(char*,char*,float,char*,int);
void inputData();
void display();
};
Book::Book(){
page=0;
}
Book::Book(char *title,char *name,float price,char *date,int page):Publication(title,name,price,date){
this->page=page;
}
void Book::inputData(){
Publication::inputData();
cout<<"Please input the page:";
cin>>page;
}
void Book::display(){
Publication::display();
cout<<"page :"<<page<<endl;
}
===========================Tape.h============================
#include "Publication.h"
class Tape:public Publication{
private:
char *playtime;
public:
Tape();
Tape(char*,char*,float,char*,char*);
~Tape();
void inputData();
void display();
};
Tape::Tape(){
playtime=new char[LEN];
strcpy(playtime,"--:--:--");
}
Tape::Tape(char *title,char *name,float price,char *date,char *playtime):Publication(title,name,price,date){
this->playtime=new char[strlen(playtime)+1];
strcpy(this->playtime,playtime);
}
Tape::~Tape(){
delete []playtime;
}
void Tape::inputData(){
Publication::inputData();
cout<<"Please input the playtime:";
cin>>playtime;
}
void Tape::display(){
Publication::display();
cout<<"Playtime:"<<playtime<<endl;
}
===========================main.cpp============================
#include "Book.h"
#include "Tape.h"
void main(){
cout<<"=============================Book1=============================="<<endl;
Book B1;
B1.display();
cout<<"=============================Book1=============================="<<endl;
B1.inputData();
cout<<"=============================Book1=============================="<<endl;
B1.display();
cout<<"=============================Book2=============================="<<endl;
Book B2("C++面向对象程序设计(第二版)","教材",42.00,"2011/07/01",341);
B2.display();
cout<<"=============================Tape1=============================="<<endl;
Tape T1;
T1.display();
cout<<"=============================Tape1=============================="<<endl;
T1.inputData();
cout<<"=============================Tape1=============================="<<endl;
T1.display();
cout<<"=============================Tape2=============================="<<endl;
Tape T2("大学英语","综合训练配套DVD",0,"2012/07/01","01:23:45");
T2.display();
cout<<"==========================Publication1=========================="<<endl;
Publication P1;
P1.display();
cout<<"==========================Publication1=========================="<<endl;
P1.inputData();
cout<<"==========================Publication1=========================="<<endl;
P1.display();
cout<<"==========================Publication2=========================="<<endl;
Publication P2("不知道","不知道",0,"不知道");
P2.display();
}