【发布时间】:2012-08-04 15:14:48
【问题描述】:
我有一个关于在 C++ 编程中处理虚函数的问题。我有这样的事情:
template<class T>
class baseClass
{
virtual void doSomething(T& t) {
// some baseClass specific code
}
void doSomethingElse(T& t) {
// some baseClass specific code
this->doSomething(t);
}
}
template<class T>
class subClass
{
virtual void doSomething(T&) {
// some subclass related code
}
}
现在,如果我构造一个 subClass 类型的对象......
int main(int argc, char *argv[])
{
subClass<anyType> * subClassObject = new subClass<anyType>();
subClassObject->doSomethingElse(anyTypeObject);
}
....调用基类的doSomethingElse方法,这个方法会调用基类的doSomething方法,而不是子类的。
我想要的是调用子类的doSomething 方法(不是baseClass)。
谁能告诉我如何做到这一点?
【问题讨论】:
-
这段代码如何编译?
subClass与baseClass无关,也没有doSomethingElse方法。