设计一个出版物基类publication。。查错。。。急!!

来源:百度知道 编辑:UC知道 时间:2024/05/27 18:02:01
设计一个出版物基类publication,存储出版物的标题title和价格price。派生图书类book和音像品类tape,分别添加属性页数page和播放时间time。三个类都有getdata()和putdata()函数,用来通过键盘从用户获得输入数据和显示数据。在驱动程序main()中创建指向publication的指针数组,在循环中询问用户的输入内别(书还是磁带),然后用new创建相应类的对象保存数据,最后将指向该对象的指针存入数组。当用户输入所有的数据后,用循环结构显示所有输入的书和磁带的信息。
#include <iostream>
#include <string>

using namespace std;
class Publication
{
string title;
double price;
public:
Publication(){}

virtual void putdata()
{
cout<<"the title is:"<<title<<",the price is:"<<price<<endl;
}
virtual void getdata();

~Publication(){}
};

void Publication::getdata()
{
cout<<"input the title:";
cin>>title;
cout<<"input the price:";
cin>>price;
}
//---------------------------------------------
class Book:public Publication
{
int pages;

楼主的思路清析,但写的代码有些乱~我帮你改了一下,通过基类指针强制转换成派生类指针,从而适应楼主的要求~

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

class Publication
{
public:

Publication(){}
~Publication(){}

virtual void putdata() {cout<<"the title is:"<<title<<",the price is:"<<price<<endl; }
virtual void getdata();

protected:

string title;
double price;

};

void Publication::getdata()
{
cout<<"input the title:";
cin>>title;
cout<<"input the price:";
cin>>price;
}

//---------------------------------------------
class Book:public Publication
{
public:

Book(){}
~Book(){}

void putdata();
void getdata();

private:
int pages;

};

void Book::putd