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

输出

两个对象的信息

样例输入

  1. 50 220
  2. 50 220 5

样例输出

  1. price:50
  2. page:220
  3.  
  4. price:50
  5. page:220
  6. difficulty:5

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

  1. #include <iostream>
  2. using namespace std;
  3. class Book
  4. {
  5. public:
  6. Book(int,int);
  7. virtual void display();
  8. protected:
  9. int price;
  10. int page;
  11. };
  12. class MathBook:public Book
  13. {
  14. public:
  15. MathBook(int,int,int);
  16. void display();
  17. private:
  18. int difficulty;
  19. };
  20. Book::Book(int a,int b)
  21. {
  22. price=a;
  23. page=b;
  24. }
  25. void Book::display()
  26. {
  27. cout<<"price:"<<price<<endl;
  28. cout<<"page:"<<page<<endl;
  29. }
  30. MathBook::MathBook(int a,int b,int c):Book(a,b)
  31. {
  32. difficulty=c;
  33. }
  34. void MathBook::display()
  35. {
  36. cout<<"price:"<<price<<endl;
  37. cout<<"page:"<<page<<endl;
  38. cout<<"difficulty:"<<difficulty<<endl;
  39. }
  40. int main()
  41. {
  42. int price,page,difficulty;
  43. cin>>price>>page;
  44. Book book(price,page);
  45. cin>>price>>page>>difficulty;
  46. MathBook math(price,page,difficulty);
  47. Book *p=&book;
  48. p->display();
  49. cout<<endl;
  50. p=&math;
  51. p->display();
  52. return 0;
  53. }

YTU 2979: MathBook类--多态的更多相关文章

  1. 【C++】类-多态

    类-多态 目录 类-多态 1. 基本概念 2. 运算符重载 2.1 重载为类的成员函数 2.2 重载为非成员函数 3. 虚函数 4. 抽象类 5. override与final 1. 基本概念 多态性 ...

  2. python 全栈开发,Day21(抽象类,接口类,多态,鸭子类型)

    一.昨日复习 派生方法和派生属性 super 只有在子父类拥有同名方法的时候, 想使用子类的对象调用父类的方法时,才使用super super在类内 : super().方法名(arg1,..) 指名 ...

  3. python面向对象 : 抽象类(接口类),多态,封装(私有制封装)

    一. 抽象类(接口类) 与java一样, python也有抽象类的概念但是同样需要借助模块实现,抽象类是一个特殊的类, 它的特殊之处在于只能被继承, 不能被实例化. 从设计角度去看, 如果类是从现实对 ...

  4. c++中的类(class)-----笔记(类多态)

    1,多态是一种运行期绑定机制,通过这种机制,实现将函数名绑定到函数具体实现代码的目的.一个函数的名称与其入口地址是紧密相连的,入口地址是该函数在内存中的起始地址.如果对一个函数的绑定发生在运行时刻而非 ...

  5. 【学习笔记】--- 老男孩学Python,day18 面向对象------抽象类(接口类), 多态, 封装

    抽象类,接口类 Python没有接口这个概念 抽象类(接口类): 目的是制定一个规范 要学会归一化设计,有重复的东西就要想把它们合并起来 from abc import ABCMeta, abstra ...

  6. python day - 19 抽象类 接口类 多态 封装

    一. 抽象类接口类即制定一个规范 特点: 1.不可被实例化. 2.规范子类当中必须事先某个方法. 3.在python中有原生实现抽象类的方法,但没有原生实现接口类的方法. 例题:制定一个规范就是,子类 ...

  7. python(类多态)

    一.多态 (以封装和继承为前提)不同的子类调用相同的方法,产生不同的结果 class Dog(): def __init__(self,name): self.name = name def game ...

  8. python之7-2类的继承与多态

    类的继承的意思就如同父子关系一样,这个儿子继承了父亲的一切,但是在某些地方(属性)相同的时候,儿子的属性大于老子的属性(覆盖),最底层类,总会继承最接近它的那个类的属性init 类的多态总是和继承相连 ...

  9. python - class类 (六) 三大特性 - 多态

    多态的概念: # 多态的概念 # 指出了对象如何通过他们共同的属性和动作来操作及访问而不需考虑他们的具体的类 # 多态表明了动态绑定的存在,允许重载及运行时类型确定和验证. # 示例模拟: #水具有多 ...

随机推荐

  1. 洛谷 P3387 【模板】缩点 DAGdp学习记

    我们以洛谷P3387 [模板]缩点 来学习DAGdp 1.这道题的流程 //伪代码 for i->n if(i未被遍历) tarjan(i) 缩点() DAGdp() 完成 首先tarjan这部 ...

  2. Java基础学习总结(93)——Java编码规范之代码性能及惯例

    1.避免使用包装类构造函数 按照SUN公司的说明,使用自动装箱或静态工厂方法比使用new一个对象快3到4倍,该规则可以用在valueOf或其它静态工厂的调用中(如:Short.Integer, Lon ...

  3. 深刻理解下js的prototype

    参考 http://aralejs.org/class/docs/competitors.html, http://www.iteye.com/topic/248933,http://www.cnbl ...

  4. react.js 高阶组件----很简单的实例理解高阶组件思想

    调试代码之前,我设置了两个缓存 分别是username和content 在控制台console设置两个缓存代码 localStorage.setItem('username','老王')localSt ...

  5. Easy sssp(vijos 1053)

    描述 输入数据给出一个有N(2 <= N <= 1,000)个节点,M(M <= 100,000)条边的带权有向图. 要求你写一个程序, 判断这个有向图中是否存在负权回路. 如果从一 ...

  6. 2016 Multi-University Training Contest 1 solutions BY HIT

    首先向大家表示抱歉,因为这套题是去年出的,中间间隔时间太长,今年又临时准备仓促, 所以部分题目出现了一些问题,非常抱歉. Abandoned country 首先注意到任意两条边的边权是不一样的,由此 ...

  7. 【收藏】下载Chrome商店插件的方法,万恶的gwd

    以下是下载离线插件包的方法: 第一步: 每个Google Chrome扩展都有一个固定的ID,例如https://chrome.google.com/webstore/detail/bfbmjmiod ...

  8. ibatis中的xml配置文件

    <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMap PUBLIC "-/ ...

  9. Date日期模式

    package cn.zmh.Date; import java.text.SimpleDateFormat; import java.util.Date; public class DateDemo ...

  10. java代码 猜数字小游戏

    import java.util.Scanner; import java.util.Random; public class mulTip{ public static void main(Stri ...