cpp-数据抽象

 1 #include <iostream>
 2 using namespace std;
 3 
 4 class Adder{
 5     public:
 6         //构造函数
 7         Adder(int i=0){
 8             total=i;
 9         }
10         
11         void addNum(int number){
12             total +=number;//在此处累加
13         }
14         int getTotal(){
15             return total;
16         }
17     private:
18         //对外隐藏的数据
19         int total;
20 
21 };
22 
23 int main()
24 {
25     Adder b;
26     b.addNum(10);
27     b.addNum(20);
28     b.addNum(50);
29     b.addNum(120);
30 
31     cout<<"Total:"<<b.getTotal()<<endl;
32 
33     return 0;
34 }

纯虚函数

 1 #include <iostream>
 2 using namespace std;
 3 
 4 #if 0
 5 class Adder{
 6     public:
 7         //构造函数
 8         Adder(int i=0){
 9             total=i;
10         }
11 
12         void addNum(int number){
13             total +=number;//在此处累加
14         }
15         int getTotal(){
16             return total;
17         }
18     private:
19         //对外隐藏的数据
20         int total;
21 
22 };
23 #endif
24 
25 //基类
26 class Box{
27     public:
28         //纯虚函数
29         virtual int getArea()=0;
30 
31         void setBreadth(int b){
32             breadth=b;
33         }
34         void setHeight(int h){
35             height=h;
36         }
37         void setLength(int l){
38             length=l;
39         }
40     protected:
41         int height;
42         int length;
43         int breadth;
44 };
45 
46 //派生类
47 class Renct:public Box{
48     public:
49     //与纯虚函数同名
50         int getArea(){
51             return (breadth * height *length);
52         }
53 };
54 
55 class Tenct:public Box{
56     public:
57     //与纯虚函数同名
58         int getArea(){
59             return (height * length)/2;
60         }
61 };
62 
63 int main(void)
64 {
65 #if 0
66     Adder b;
67     b.addNum(10);
68     b.addNum(20);
69     b.addNum(50);
70     b.addNum(120);
71 
72     cout<<"Total:"<<b.getTotal()<<endl;
73 #endif
74 
75     Renct acc;
76     Tenct bcc;
77 
78     acc.setBreadth(5);
79     acc.setHeight(4);
80     acc.setLength(3);
81 
82     bcc.setHeight(2);
83     bcc.setLength(3);
84 
85     cout<<"Tenct:"<<acc.getArea()<<endl;
86     cout<<"Teb:"<<bcc.getArea()<<endl;
87 
88     return 0;
89 }
原文地址:https://www.cnblogs.com/Blue-Moniter4/p/9480553.html