1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| struct C {
int x;
int y;
C() : x(0), y(0) {}
C(int _x, int _y) : x(_x), y(_y) {}
virtual void reverse(C*& _c) const { _c = new C(-x, -y); }
virtual void cout() const { std::cout<<"x:"<<x<<",y:"<<y<<std::endl; }
};
struct D : public C {
int z;
D() : C(0,0), z(0) {}
D(int _x, int _y, int _z) : C(_x,_y), z(_z) {}
virtual void reverse(C*& _c) const { _c = new D(-x, -y, -z); }
virtual void cout() const { std::cout<<"x:"<<x<<",y:"<<y<<",z:"<<z<<std::endl; }
};
C* c = new D(1,2,3);
c->cout();
C* c2;
c->reverse(c2);
c2->cout(); |
Partager