当前位置 : 主页 > 手机开发 > 其它 >

实验五--类的继承派生多态二次练习

来源:互联网 收集:自由互联 发布时间:2021-06-19
实验目的 1. 理解运行时多态 2. 掌握虚函数和抽象类 实验准备 1. 概念 多态,运行时多态 虚函数, 纯虚函数, 抽象类 2. 语法和应用 虚函数的定义和使用纯虚函数、抽象类的定义和使用
实验目的 1. 理解运行时多态 2. 掌握虚函数和抽象类
实验准备 1. 概念 多态,运行时多态 虚函数, 纯虚函数, 抽象类 2. 语法和应用 虚函数的定义和使用纯虚函数、抽象类的定义和使用
实验内容
设计并实现一个机器宠物类MachinePets。 每个机器宠物有如下信息:昵称(nickname) 每个机器宠物有如下成员函数: 带参数的构造函数MachinePets(const string s) ,为机器宠物初始化昵称。 纯虚函数string talk()为机器宠物派生类提供宠物叫声的统一接口。 设计并实现电子宠物猫类PetCats,该类公有继承自MachinePets。每个电子宠物猫类有如下成员函数: 带参数的构造函数PetCats(const string s),为机器宠物猫初始化昵称。 string talk(),返回电子宠物猫叫声。 设计并实现电子宠物狗类PetDogs, 该类公有继承自MachinePets。每个电子宠物狗类有如下成员函数: 带参数的构造函数PetCats(const string s),为机器宠物狗初始化昵称。 string talk(),返回电子宠物狗叫声。
 1 #ifndef PET_H
 2 #define PET_H
 3 #include<string>
 4 using namespace std;
 5     class MachinePets{
 6 public:
 7     MachinePets(const string s="nameless");
 8     virtual string talk()=0;
 9     string getNickname();
10 private:
11     string nickname;
12 };
13     class PetCats:public MachinePets{
14 public:
15     PetCats(const string s);
16     string talk();
17 };
18 
19     class PetDogs:public MachinePets{
20 public:
21     PetDogs(const string s);
22     string talk();
23 };
24 #endif // PET_H_INCLUDED
pet.h
#include <iostream>
#include <string>
using namespace std;
#include "pet.h"
#include  <stdlib.h>
    MachinePets::MachinePets(string s/*="nameless"*/):nickname(s){}
    string MachinePets::getNickname(){
        return nickname;
    }
  PetCats::PetCats(const string s):MachinePets(s){
    }
    string PetCats::talk(){
    return "meow~";
    }
    PetDogs::PetDogs(const string s):MachinePets(s){}
    string PetDogs::talk(){
    return "rao~";
}
    void play(MachinePets * pet){
    cout<<pet->getNickname()<< <<"says"<< <<pet->talk()<<endl;
}
int main()
{
  PetCats cat("xiro neko");
PetDogs dog("dogmeat");
play(&cat); // 按照play()形参,传递参数
play(&dog); // 按照play()形参,传递参数
     return 0;
 }
main.cpp

 

rpg游戏---等写完了再补充上面去(咕咕咕)

 总结

注意基类中成员函数有无关键字virtual,访问的成员分别是什么。

网友评论