纯虚函数的入门程序

#include <iostream>
using namespace std;
class original {
public:
    original(int i = 0, int j = 0) {
        x0 = i;
        y0 = j;
    }
    virtual void set()=0;
    virtual void draw()=0;
private:
    int x0, y0;
};
class son1: public original {
public:
    son1(int i = 0, int j = 0, int m = 0, int n=0):original(i,j){
        x1 = m; y1 = n;
    }
    void set() {
        cout << "son1::set( " << x1++ << " )called\n";
    }
    void draw() {
        cout << "son1::draw( " << --y1 << " )called\n";
    }
protected:
    int x1, y1;

};

class son2:public original {
public:
    son2(int i=0, int j=0, int p=0, int q=0):original(i,j) {
        x2 = p;
        y2 = q;
    }
    void set() {
        cout << "son2::set( " << ++x2 << " )called.\n";
    }
    void draw()  {
        cout << "son2::draw( " << y2--  << " )called.\n";
    }
protected:
    int x2, y2;
};

void drawobj(original *p) {
    p->draw();
}
void setobj(original *p) {
    p->set();
}
int main() {
    son1 *s1obj = new son1;
    son2 *s2obj = new son2;
    drawobj(s1obj);
    drawobj(s2obj);
    cout << "another one!" << endl;
    setobj(s1obj);
    setobj(s2obj);
    cout << "\nRedraw the objects\n";
    drawobj(s1obj);
    drawobj(s2obj);
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值