• C++学习day6


     1.思维导图

     

     2.作业:

    编程题:
    以下是一个简单的比喻,将多态概念与生活中的实际情况相联系:
    比喻:动物园的讲解员和动物表演
    想象一下你去了一家动物园,看到了许多不同种类的动物,如狮子、大象、猴子等。现在,动物园里有一位讲解员,他会为每种动物表演做简单的介绍。
    在这个场景中,我们可以将动物比作是不同的类,而每种动物表演则是类中的函数。而讲解员则是一个基类,他可以根据每种动物的特点和表演,进行相应的介绍。
    具体过程如下:
    定义一个基类 Animal,其中有一个虛函数perform(),用于在子类中实现不同的表演行为。
    1. #include
    2. using namespace std;
    3. class Animal
    4. {
    5. public:
    6. string name;
    7. int weight;
    8. string color;
    9. string sex;
    10. public:
    11. Animal(){}
    12. Animal(string n,int w,string c,string s):name(n),weight(w),color(c),sex(s)
    13. {
    14. cout << "我是动物园的讲解员,下面由我来给大家介绍这里的东动物"<< endl;
    15. }
    16. //构造纯虚函数
    17. virtual void perfrom()
    18. {
    19. }
    20. void show()
    21. {
    22. cout << "name: "<< name<
    23. cout << "weight:" <
    24. cout << "color:"<< color<
    25. cout << "sex:"<< sex<
    26. }
    27. };
    28. class Lion:public Animal
    29. {
    30. private:
    31. string say;
    32. public:
    33. Lion(){}
    34. Lion (string n ,int w,string c,string s,string a):Animal(n,w,c,s),say(a)
    35. {
    36. }
    37. void perfrom()
    38. {
    39. cout << "Lion:我要表演狮子怒吼" << endl;
    40. }
    41. void show()
    42. {
    43. cout << "name: "<< name<
    44. cout << "weight:" <
    45. cout << "color:"<< color<
    46. cout << "sex:"<< sex<
    47. cout << "技能:say:"<< say <
    48. }
    49. };
    50. class Elephant:public Animal
    51. {
    52. private:
    53. string water;
    54. public:
    55. Elephant(){}
    56. Elephant(string n,int w,string c,string s,string wa):Animal(n,w,c,s),water(wa)
    57. {
    58. }
    59. void perfrom()
    60. {
    61. cout << "elephant:我要表演大象喷水" << endl;
    62. }
    63. void show()
    64. {
    65. cout << "name: "<< name<
    66. cout << "weight:" <
    67. cout << "color:"<< color<
    68. cout << "sex:"<< sex<
    69. cout << "技能:water:"<< water <
    70. }
    71. };
    72. class Monkey:public Animal
    73. {
    74. private:
    75. string eat;
    76. public:
    77. Monkey(){}
    78. Monkey(string n,int w,string c,string s,string e):Animal(n,w,c,s),eat(e)
    79. {
    80. }
    81. void perfrom()
    82. {
    83. cout << "monkey: 我要表演猴子吃桃" << endl;
    84. }
    85. void show()
    86. {
    87. cout << "name: "<< name<
    88. cout << "weight:" <
    89. cout << "color:"<< color<
    90. cout << "sex:"<< sex<
    91. cout << "技能:eat:"<< eat <
    92. }
    93. };
    94. int main()
    95. {
    96. Animal *p;
    97. Lion s("狮子",200,"yellow","公","表演节目:狮子怒吼");
    98. Elephant e("大象",20000,"blue","母","节目:大象喝水");
    99. Monkey m("猴子",10,"bleak","公","节目:猴子吃桃");
    100. s.show();
    101. p=&s;
    102. p->perfrom();
    103. e.show();
    104. p=&e;
    105. p->perfrom();
    106. m.show();
    107. p=&m;
    108. p->perfrom();
    109. return 0;
    110. }

    效果图:

     

     

  • 相关阅读:
    树形DP
    【Android入门】5、Broadcast 广播、Kotlin 的高阶函数、泛型、委托
    THREE--demo8(文字)
    数据结构学习笔记(第八章 排序-内部排序)
    【老生谈算法】matlab实现LU分解算法源码——LU算法
    独立站源码搭建,跨境独立站怎么搭建?
    金仓数据库 KingbaseES PL/SQL 过程语言参考手册(10. 触发器)
    7.关于线性回归模型的Q&A
    最热门的跨考考研5大专业是哪些?
    Maven - 3、详解maven解决依赖问题
  • 原文地址:https://blog.csdn.net/m0_69894626/article/details/133798569