抽象宠物类的实现 代码参考

0
17
 1 #include <iostream>
 2 #include <string>
 3 
 4 using namespace std;
 5 
 6 class Pet
 7 {
 8     private:
 9         string name;
10         int age;
11         string color;
12     public:
13         Pet(string name,int age,string color)
14         {
15             this->name=name;
16             this->age=age;
17             this->color=color;
18         }
19         string Getname(){return name;}
20         int Getage(){return age;}
21         string Getcolor(){return color;}
22         virtual void Speak();
23         virtual void Getinfo();
24 };
25 
26 void Pet::Speak()
27 {
28     cout<<"How does a pet speak?"<<endl;
29     return;
30 }
31 
32 void Pet::Getinfo()
33 {
34     cout<<"名字:"<<name<<endl;
35     cout<<"年龄:"<<age<<endl;
36     cout<<"颜色:"<<color<<endl;
37 }
38 
39 class Cat:public Pet
40 {
41     public:
42         Cat(string name, int age, string color):Pet(name,age,color){}
43         void Speak();
44         void Getinfo();
45 };
46 
47 void Cat::Speak()
48 {
49     cout<<"猫的叫声:miao!miao!"<<endl;
50     return;
51 }
52 
53 void Cat::Getinfo()
54 {
55     cout<<"猫的名字:"<<Getname()<<endl;
56     cout<<"猫的年龄:"<<Getage()<<endl;
57     cout<<"猫的颜色:"<<Getcolor()<<endl;
58     return;
59 }
60 
61 class Dog:public Pet
62 {
63     public:
64         Dog(string name, int age, string color):Pet(name,age,color){}
65         void Speak();
66         void Getinfo();
67 };
68 
69 void Dog::Speak()
70 {
71     cout<<"狗的叫声:wang!wang!"<<endl;
72     return;
73 }
74 
75 void Dog::Getinfo()
76 {
77     cout<<"狗的名字:"<<Getname()<<endl;
78     cout<<"狗的年龄:"<<Getage()<<endl;
79     cout<<"狗的颜色:"<<Getcolor()<<endl;
80     return;
81 }
82 
83 int main()
84 {
85     string name1,name2,color1,color2;
86     int age1,age2;
87     cin>>name1>>age1>>color1;
88     cin>>name2>>age2>>color2;
89     Pet *p1,*p2;
90     p1=new Cat(name1,age1,color1);
91     p2=new Dog(name2,age2,color2);
92     p1->Getinfo();
93     p1->Speak();
94     p2->Getinfo();
95     p2->Speak();
96     return 0;
97 }

<

发布回复

请输入评论!
请输入你的名字