由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 讨论一个OO问题
相关主题
设计card deck问题,还有shuffle function,大家要搞清楚呀Amazon 两轮电话面经 及 design问题请教
one C++ questionAmamon onsite 面经
最新微软SDE II面试题C++ Q54: enum (C12)
1000题的题量是基础又问几个c语言编程的题目
c++ vs Java virtual 实现(Y家)被默据了,发amazon面经
一道难题Can a 10-year-Java guy answer these 2 questions promptly?
问个构造函数的问题用Java面试的大牛们
求介绍设计parking lot的文档问几个最近很头痛的A家的题
相关话题的讨论汇总
话题: message话题: name话题: buy话题: struct
进入JobHunting版参与讨论
1 (共1页)
q****x
发帖数: 7404
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原理吗?
h****e
发帖数: 928
2
既然只是名字不一样,应该不需要用继承吧。这个名字只是Message的
一个属性。在Message Class里面只要定义一个类似getMessageName()
的函数就可以了。
q****x
发帖数: 7404
3
不需要新函数。直接取消纯虚即可。
但问题在于,你怎么限制Message类型只有Buy和Sell两种?如果在ctor里加if-else判
断,增添新的Message类型怎么办?

【在 h****e 的大作中提到】
: 既然只是名字不一样,应该不需要用继承吧。这个名字只是Message的
: 一个属性。在Message Class里面只要定义一个类似getMessageName()
: 的函数就可以了。

h****e
发帖数: 928
4
ctor可以用enum啊,这样compiler就可以帮你做检查了。然后提供一个
enum->string的函数。这样以后localization也容易。

【在 q****x 的大作中提到】
: 不需要新函数。直接取消纯虚即可。
: 但问题在于,你怎么限制Message类型只有Buy和Sell两种?如果在ctor里加if-else判
: 断,增添新的Message类型怎么办?

q****x
发帖数: 7404
5
如果要统计每种Message的调用次数呢?再加N个计数器?

【在 h****e 的大作中提到】
: ctor可以用enum啊,这样compiler就可以帮你做检查了。然后提供一个
: enum->string的函数。这样以后localization也容易。

h****e
发帖数: 928
6
是的,可以在你的class里面加上这个:
enum TYPE {BUY, SELL};
static long call_count[SELL+1];

【在 q****x 的大作中提到】
: 如果要统计每种Message的调用次数呢?再加N个计数器?
1 (共1页)
进入JobHunting版参与讨论
相关主题
问几个最近很头痛的A家的题c++ vs Java virtual 实现(Y家)
这题到底什么意思?一道难题
谈谈刚面的一个design题问个构造函数的问题
L家电面题目求介绍设计parking lot的文档
设计card deck问题,还有shuffle function,大家要搞清楚呀Amazon 两轮电话面经 及 design问题请教
one C++ questionAmamon onsite 面经
最新微软SDE II面试题C++ Q54: enum (C12)
1000题的题量是基础又问几个c语言编程的题目
相关话题的讨论汇总
话题: message话题: name话题: buy话题: struct