一、
1 #ifndef MACHINEPETS_H 2 #define MACHINEPETS_H 3 #include<iostream> 4 #include<string> 5 using namespace std; 6 class MachinePets 7 { 8 public: 9 MachinePets(const string s) :nickname(s) {} 10 virtual string talk()=0; 11 string getnickname(); 12 private: 13 string nickname; 14 15 }; 16 #endif // !MACHINEPETS_H
1 #ifndef PETDOGS_H 2 #define PETDOGS_H 3 #include<iostream> 4 #include"MachinePets.h" 5 using namespace std; 6 #include<string> 7 class PetDogs :public MachinePets 8 { 9 public: 10 PetDogs(const string s) :MachinePets(s) {} 11 string talk() { return " wang wang~"; } 12 }; 13 #endif 14 #pragma once
1 #ifndef PETCATS_H 2 #define PETCATS_H 3 #include<iostream> 4 #include"MachinePets.h" 5 using namespace std; 6 #include<string> 7 class PetCats:public MachinePets 8 { 9 public: 10 PetCats(const string s):MachinePets(s){} 11 string talk() { return " miao wu ~"; } 12 }; 13 #endif
1 #include"MachinePets.h" 2 #include<iostream> 3 #include<string> 4 using namespace std; 5 string MachinePets::getnickname() 6 { 7 return nickname; 8 }
1 #include"MachinePets.h" 2 #include"PetCats.h" 3 #include"PetDogs.h" 4 #include<iostream> 5 #include<string> 6 void play(MachinePets *t) 7 { 8 cout<<t->getnickname()<<" says"<<t->talk() << endl; 9 } 10 using namespace std; 11 int main() 12 { 13 PetCats cat("miku"); 14 PetDogs dog("da huang"); 15 play(&cat); // 按照play()形参,传递参数 16 play(&dog); // 按照play()形参,传递参数 17 return 0; 18 }
二、
游戏选做
1、#ifndef _CONTATNER
2、numOfHeal--;
4、void showinfo(player &p1, player &p2);
5、public player
这道题没运行出来。。。所以我不确定的我也不写出来了,以免贻笑大方。
第一题不是很难,默认函数初始化还是在函数首部直接实现比较好。
插入音频文件暂时。。。还没成功。
虚函数既可以用return,也可以定义成员函数的时候定义它。好像跟friend一样不用再写virtual。