讨论一个OO问题# JobHunting - 待字闺中
q*x
1 楼
struct Message {
virtual ~Message() = 0;
explicit Message(const string name&):name_(name);
void f() { cout << name_ << "order executed" << endl; }
string name_;
};
Message::~Message() {}
struct BuyMessage: public Message {
BuyMessage(): Message("Buy");
};
struct SellMessage: public Message {
SellMessage(): Message("Sell");
};
这里所有数据都可以在Message里处理。Buy和SellMessage的区别就是给name_赋不同的
值。
这种继承符合OO原理吗?
virtual ~Message() = 0;
explicit Message(const string name&):name_(name);
void f() { cout << name_ << "order executed" << endl; }
string name_;
};
Message::~Message() {}
struct BuyMessage: public Message {
BuyMessage(): Message("Buy");
};
struct SellMessage: public Message {
SellMessage(): Message("Sell");
};
这里所有数据都可以在Message里处理。Buy和SellMessage的区别就是给name_赋不同的
值。
这种继承符合OO原理吗?