YTU 2979: MathBook类--多态

来源:互联网 发布:数据港招股说明书 编辑:程序博客网 时间:2024/05/13 16:01

2979: MathBook类--多态

时间限制: 1 Sec  内存限制: 128 MB
提交: 51  解决: 31

题目描述

Book类将自己的display函数设计为虚函数,从而通过父类指针调用其继承者MathBook的display函数实现多态。请将MathBook类补充完整。

只需提交补充部分。

请用C++方式提交

以下代码自动添加到提交代码前:
#include <iostream>
using namespace std;
class Book
{
public:
    Book(int,int);
    virtual void display();
protected:
    int price;
    int page;
};
class MathBook:public Book
{
public:
    MathBook(int,int,int);
    void display();
private:
    int difficulty;
};
Book::Book(int a,int b)
{
    price=a;
    page=b;
}
void Book::display()
{
    cout<<"price:"<<price<<endl;
    cout<<"page:"<<page<<endl;
}
MathBook::MathBook(int a,int b,int c):Book(a,b)
{
    difficulty=c;
}

//以下代码自动添加到提交代码后:
int main()
{
    int price,page,difficulty;
    cin>>price>>page;
    Book book(price,page);
    cin>>price>>page>>difficulty;
    MathBook math(price,page,difficulty);
    Book *p=&book;
    p->display();
    cout<<endl;
    p=&math;
    p->display();
    return 0;
}

输入

第一行输入book对象的price和page;
第二行输入math对象的price、page和difficulty

输出

两个对象的信息

样例输入

50 22050 220 5

样例输出

price:50page:220price:50page:220difficulty:5

你  离  开  了  ,  我  的  世  界  里  只  剩  下  雨  。  。  。

#include <iostream>using namespace std;class Book{public:    Book(int,int);    virtual void display();protected:    int price;    int page;};class MathBook:public Book{public:    MathBook(int,int,int);    void display();private:    int difficulty;};Book::Book(int a,int b){    price=a;    page=b;}void Book::display(){    cout<<"price:"<<price<<endl;    cout<<"page:"<<page<<endl;}MathBook::MathBook(int a,int b,int c):Book(a,b){    difficulty=c;}void MathBook::display(){    cout<<"price:"<<price<<endl;    cout<<"page:"<<page<<endl;    cout<<"difficulty:"<<difficulty<<endl;}int main(){    int price,page,difficulty;    cin>>price>>page;    Book book(price,page);    cin>>price>>page>>difficulty;    MathBook math(price,page,difficulty);    Book *p=&book;    p->display();    cout<<endl;    p=&math;    p->display();    return 0;}

1 0