1 //实验六任务2
2 //定义猫科动物Animal类,由其派生出猫类(Cat)和豹类(Leopard),
3 //在Animal类中定义虚函数,输出“My name is Animal”,在派生类中
4 //分别重新定义该函数,显示“My name is **”,其中**为各自类名
5 #include <iostream>
6 #include <string>
7 using namespace std;
8 class Animal
9 {
10 public:
11 virtual void name()
12 {
13 cout<<"My name is Animal"<<endl;
14 }
15 };
16 class Cat:public Animal
17 {
18 public:
19 void name()
20 {
21 cout<<"My name is Cat"<<endl;
22 }
23 };
24 class Leopard:public Animal
25 {
26 public:
27 void name()
28 {
29 cout<<"My name is Leopard"<<endl;
30 }
31 };
32 void test()
33 {
34 Cat c;
35 Leopard l;
36 c.name();
37 l.name();
38 }
39 int main()
40 {
41 test();
42 return 0;
43 }
![]()
1 //实验六任务4
2 #include <iostream>
3 #include <string>
4 using namespace std;
5 class Shape
6 {
7 virtual void setvalues() = 0;
8 virtual void floatarea() = 0;
9 };
10 class rectangle:public Shape
11 {
12 public:
13 void setvalues()
14 {
15 cout<<"请输入矩形的底和高:"<<endl;
16 cin>>x>>y;
17 }
18 void floatarea()
19 {
20 cout<<"矩形的面积为:"<<x*y<<endl;
21 }
22 float x;
23 float y;
24 };
25 class arctangle:public Shape
26 {
27 public:
28 void setvalues()
29 {
30 cout<<"请输入三角形的底和高:"<<endl;
31 cin>>x>>y;
32 }
33 void floatarea()
34 {
35 cout<<"三角形的面积为:"<<x*y/2<<endl;
36 }
37 float x;
38 float y;
39 };
40 class square:public Shape
41 {
42 public:
43 void setvalues()
44 {
45 cout<<"请输入正方形的边长:"<<endl;
46 cin>>x;
47 }
48 void floatarea()
49 {
50 cout<<"正方形的面积为:"<<x*x<<endl;
51 }
52 float x;
53 };
54 class circle:public Shape
55 {
56 public:
57 void setvalues()
58 {
59 cout<<"请输入圆形的半径:"<<endl;
60 cin>>r;
61 }
62 void floatarea()
63 {
64 cout<<"圆形的面积为:"<<3.1415*r*r<<endl;
65 }
66 float r;
67 };
68 void test()
69 {
70 rectangle r;
71 arctangle a;
72 square s;
73 circle c;
74 r.setvalues();
75 a.setvalues();
76 s.setvalues();
77 c.setvalues();
78 if(r.x<=0||r.y<=0||a.x<=0||a.y<=0||s.x<=0||c.r<=0)
79 {
80 cout<<"Set Value Error!"<<endl;
81 exit(0);
82 }
83 r.floatarea();
84 a.floatarea();
85 s.floatarea();
86 c.floatarea();
87 }
88 int main()
89 {
90 test();
91 return 0;
92 }