实验五--类的继承派生多态二次练习
Posted laboratory-x
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验五--类的继承派生多态二次练习相关的知识,希望对你有一定的参考价值。
实验目的
1. 理解运行时多态
2. 掌握虚函数和抽象类
实验准备
1. 概念
多态,运行时多态
虚函数, 纯虚函数, 抽象类
2. 语法和应用
虚函数的定义和使用纯虚函数、抽象类的定义和使用
实验内容
pet.h
main.cpp
设计并实现一个机器宠物类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
#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;
rpg游戏---等写完了再补充上面去(咕咕咕)
总结
注意基类中成员函数有无关键字virtual,访问的成员分别是什么。
以上是关于实验五--类的继承派生多态二次练习的主要内容,如果未能解决你的问题,请参考以下文章