纯虚函数

 

  1     #include <iostream.h>
  2 
  3  
  4 
  5     class point
  6 
  7     {
  8 
  9     public:
 10 
 11     point(int i=0int j=0) { x0=i; y0=j; }
 12 
 13     virtual void set() = 0;
 14 
 15     virtual void draw() = 0;
 16 
 17     protected:
 18 
 19     int x0, y0;
 20 
 21     };
 22 
 23  
 24 
 25     class line : public point
 26 
 27     {
 28 
 29     public:
 30 
 31     line(int i=0int j=0int m=0int n=0):point(i, j)
 32 
 33     {
 34 
 35         x1=m; y1=n;
 36 
 37     }
 38 
 39     void set() { cout<<"line::set() called.\n"; }
 40 
 41     void draw() { cout<<"line::draw() called.\n"; }
 42 
 43     protected:
 44 
 45     int x1, y1;
 46 
 47     };
 48 
 49  
 50 
 51     class ellipse : public point
 52 
 53     {
 54 
 55     public:
 56 
 57     ellipse(int i=0int j=0int p=0int q=0):point(i, j)
 58 
 59     {
 60 
 61         x2=p; y2=q;
 62 
 63     }
 64 
 65     void set() { cout<<"ellipse::set() called.\n"; }
 66 
 67     void draw() { cout<<"ellipse::draw() called.\n"; }
 68 
 69     protected:
 70 
 71     int x2, y2;
 72 
 73     };
 74 
 75  
 76 
 77     void drawobj(point *p)
 78 
 79     {
 80 
 81     p->draw();
 82 
 83     }
 84 
 85  
 86 
 87     void setobj(point *p)
 88 
 89     {
 90 
 91     p->set();
 92 
 93     }
 94 
 95  
 96 
 97     void main()
 98 
 99     {
100 
101     line *lineobj = new line;
102 
103     ellipse *elliobj = new ellipse;
104 
105     drawobj(lineobj);
106 
107     drawobj(elliobj);
108 
109     cout<<endl;
110 
111     setobj(lineobj);
112 
113     setobj(elliobj);
114 
115     cout<<"\nRedraw the object...\n";
116 
117     drawobj(lineobj);
118 
119     drawobj(elliobj);
120 
121     }
122 

 

 

posted @ 2009-12-28 23:12  怀想  阅读(253)  评论(0编辑  收藏  举报