我可以使用C++模板類來區分對象類型嗎?或者我應該使用什麼?模板類來區分對象類型?
例如,例如,我有一個類Synonym
,它可以是Statement, Procedure, etc
類型。我有接受這些同義詞並根據其類型對它們進行評估的函數。所以我想這將是很好,如果我可以這樣做:
enum Types { Statement, Procedure, Variable, ... };
template <typename Types>
class Synonym { ... }
void evaluate(Synonym<Statement> s, Synonym<Variable> v) { do something }
^so that I can do this ... instead of checking the type in function like:
void evaluate(Synonym s, Synonym v) {
assert(s.type == Statement);
assert(v.type == Variable);
// also would like to eliminate things like: (if possible)
switch(s.type) {
case XXX: doSomething ...
case YYY: doAnotherThing ...
}
}
我不明白,你想達到什麼目的? – StoryTeller 2013-02-21 14:12:45
你總是可以重載函數參數,所以是第一次評估應該沒問題。 – StoryTeller 2013-02-21 14:14:10