【发布时间】:2011-03-20 05:02:26
【问题描述】:
在模板鸭子类型和纯虚拟基类继承之间进行选择的准则是什么?例子:
// templates
class duck {
void sing() { std::cout << "quack\n"; }
};
template<typename bird>
void somefunc(const bird& b) {
b.sing();
}
// pure virtual base class
class bird {
virtual void sing() = 0;
};
class duck : public bird {
void sing() { std::cout << "quack\n"; }
}
void somefunc(const bird& b) {
b.sing();
}
【问题讨论】:
-
很好的双关语 :)(更多字符)
标签: c++ inheritance templates base-class pure-virtual