首页 > 其他 > 详细

实验五

时间:2019-05-28 23:29:01      阅读:162      评论:0      收藏:0      [点我收藏+]

实验五

实验五第一个实验是一个关于抽象类,多态,运行时多态,虚函数等的一个实验。设计并实现一个机器宠物类MachinePets。

技术分享图片
 1 #include<iostream>
 2 #include<string>
 3 using namespace std;
 4 
 5 class MachinePets{
 6     public:
 7         MachinePets(const string s):nickname(s){
 8         }
 9         virtual string talk()const=0;
10         string Getnickname(){
11             return nickname;
12         }
13     private:
14         string nickname;
15 };
16 
17 class PetCats:public MachinePets{
18     public:
19         PetCats(const string s):MachinePets(s){
20         }
21         string talk()const{
22             return "says miao wu~"; 
23         }
24 };
25 
26 class PetDogs:public MachinePets{
27     public:
28         PetDogs(const string s):MachinePets(s){
29         }
30         string talk() const{ 
31             return "says wuwang wuwang~"; 
32         }
33 };
34 
35 void play(MachinePets &m){
36     std::cout<<m.Getnickname()<<ends<<m.talk()<<endl;
37 }
38 
39 int main() {
40 PetCats cat("miku");
41 PetDogs dog("da huang");
42 play(cat);
43 play(dog);
44 return 0;
45 }
MachinePets

 

实验截图:

技术分享图片


实验二

填了几个空,最后6和7感觉是确定death啥的,想不出来。

1,#ifndef _CONTAINER

2,numOfHeal--;

3,p.bag.set(0,0); 

4,void showinfo(player &p1, player &p2)

5,public player

等想出来运行出来再来补……


 

实验结论

关于第一个实验,void string talk()const声明中返回值类型是string,但是下面return类型是char类型,做了一个强制转换,换回char类型会报错,错误为技术分享图片,自己也一直不怎么了解char和string类型,上网查了https://bbs.csdn.net/topics/190078872和https://blog.csdn.net/yejinxiong001/article/details/78436310这两个网站,并根据错误对一个程序做了更改

技术分享图片
 1 #include<iostream>
 2 #include<string>
 3 using namespace std;
 4 
 5 class MachinePets{
 6     public:
 7         MachinePets(const string s):nickname(s){
 8         }
 9         virtual char* talk()const=0; 
10         string Getnickname(){
11             return nickname;
12         }
13     private:
14         string nickname;
15 };
16 
17 class PetCats:public MachinePets{
18     public:
19         PetCats(const string s):MachinePets(s){
20         }
21         char* talk()const{
22             return "says miao wu~"; 
23         }
24 };
25 
26 class PetDogs:public MachinePets{
27     public:
28         PetDogs(const string s):MachinePets(s){
29         }
30         char* talk()const{
31             return "says wang wang~"; 
32         }
33 };
34 
35 void play(MachinePets &m){
36     std::cout<<m.Getnickname()<<ends<<m.talk()<<endl;
37 }
38 
39 int main() {
40 PetCats cat("miku");
41 PetDogs dog("da huang");
42 play(cat);
43 play(dog);
44 return 0;
45 }
char和string方面的更改

但是还有warning,至少比之前直接写char talk能运行出结果了!

技术分享图片

 

实验五

原文:https://www.cnblogs.com/DADABu-21/p/10940992.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!