首页 > 其他分享 >实验5 继承和多态

实验5 继承和多态

时间:2024-12-02 20:13:13浏览次数:6  
标签:PetDogs const string 继承 多态 实验 MachinePets nickname public

任务3

源码:

 1 #pragma once
 2 
 3 #include <iostream>
 4 #include <string>
 5 
 6 using std::string;
 7 
 8 
 9 class MachinePets {
10 public:
11     MachinePets(const string &s);           
12 
13 public:
14     virtual string get_nickname() const = 0;                 
15     virtual string talk() const = 0;                
16 
17 protected:
18     string nickname;    
19 };
20 
21 MachinePets::MachinePets(const string &s): nickname{s} {
22 }
23 
24 
25 
26 class PetCats: public MachinePets {
27 public:
28     PetCats(const string &s);  
29 
30 public:
31     string get_nickname() const override;      
32     string talk() const override;         
33 
34 };
35 
36 PetCats::PetCats(const string &s): MachinePets{s} {
37 }
38 
39 string PetCats::get_nickname() const{
40     return nickname;
41 }
42 
43 string PetCats::talk() const {
44     return "miao wu~";
45 }
46 
47 
48 class PetDogs: public MachinePets {
49 public:
50     PetDogs(const string &s);  
51 
52 public:
53     string get_nickname() const override;      
54     string talk() const override;         
55 
56 };
57 
58 PetDogs::PetDogs(const string &s): MachinePets{s} {
59 }
60 
61 string PetDogs::get_nickname() const{
62     return nickname;
63 }
64 
65 string PetDogs::talk() const {
66     return "wang wang~";
67 }
pets.hpp
 1 #include <iostream>
 2 #include <vector>
 3 #include "pets.hpp"
 4 
 5 void test() {
 6     using namespace std;
 7 
 8     vector<MachinePets *> pets;
 9 
10     pets.push_back(new PetCats("miku"));
11     pets.push_back(new PetDogs("da huang"));
12 
13     for(auto &ptr: pets)
14         cout <<ptr->get_nickname() << " says " << ptr->talk() << endl;
15 }
16 
17 int main() {
18     test();
19 }
task3.cpp

运行测试截图:

 

任务4

 源码:

 

标签:PetDogs,const,string,继承,多态,实验,MachinePets,nickname,public
From: https://www.cnblogs.com/c-929/p/18582306

相关文章

  • 实验5 继承和多态
    实验任务三源码1#pragmaonce2#include<iostream>3#include<string>45usingstd::string;6usingstd::cout;7usingstd::endl;89//电子宠物类10classMachinePets{11private:12stringnickname;13public:14MachinePets(cons......
  • 实验5
    实验任务3pets.hpp代码点击查看代码#include<iostream>#include<string>usingnamespacestd;classMachinePets{public: MachinePets(conststrings); virtualstringtalk()const=0; stringget_nickname()const; private: stringnickname; };Mac......
  • 实验五 继承和多态
    实验一:代码:publisher.hpp:1#pragmaonce23#include<iostream>4#include<string>56usingstd::cout;7usingstd::endl;8usingstd::string;910classPublisher{11public:12Publisher(conststring&s="");......
  • OPP实验五
    任务一、 任务二、 2【通过sort库函数来实现,其中,写了一个比较函数来作为sort的参数】 3【通过ChatGPT】 3、任务三、 1#pragmaonce2#include<string>3usingnamespacestd;45classMachinePets{6private:7stringnickname;8pub......
  • 实验5
    任务1 task1_1 源代码1#include<stdio.h>2#defineN534voidinput(intx[],intn);5voidoutput(intx[],intn);6voidfind_min_max(intx[],intn,int*pmin,int*pmax);78intmain(){9inta[N];10intmin,max;1112......
  • 实验五
    task1:代码:#include"publisher.hpp"#include<vector>#include<typeinfo>usingstd::vector;voidtest(){vector<Publisher*>v;v.push_back(newBook("HarryPotter","J.K.Rowling"));v.push_b......
  • 20222425 2024-2025-1 《网络与系统攻防技术》实验七实验报告
    1.实验内容本周学习内容:本周我们学了web安全的章节,首先我们了解了前端和后端技术,其次我们学习了一些web安全攻防的内容,例如SQL注入和XSS跨站脚本攻击、CSRF以及安全防范的内容。在实验的过程中我们学到了网络欺诈与防范技术。2.实验过程主机IP:192.168.35.1kali(攻击机IP):192.168......
  • 实验5文档部分代码
    实验一找到输入数据中的最大值和最小值指向x[0]输出最大数可以实验二80s1的内存大小和字符串长度能 s1存储的内容是字符串"Learningmakesmehappy",而sizeof(s1)返回的是整个指针类型的大小\不能在原始代码中,通过赋值的方式为s1分配内存空间,并初始化其内容;而......
  • 实验5 C语言指针应用编程
    一,实验目的1,深度理解使用指针变量间接访问数据,代码2,会使用指针变量间接访问一维数组元素,二维数组元素3,会使用指针变量处理字符串4,会使用指针变量作为函数参数(形参,实参)和返回值5,能灵活应用数组,指针,函数,编程解决实际问题二,实验准备使用指针间接访问数组(一维,两维)指针作为函数......
  • Nginx负载均衡综合实验
    一、实验环境二、实验步骤1.配置IP地址2.安装Nginx和PHP(Nginx1和Nginx2)yum-yremovephp*yum-yinstallnginx将PHP的rpm包拖入yum-ylocalinstall*.rpmsystemctlstartphp-fpm3.搭建wordpress(Nginx1)(一)将wordpress-4.9.4-zh_CN包拖入根目录下(二)解压并赋予权限......