【发布时间】:2013-02-23 05:16:47
【问题描述】:
假设我有两个模板类,一个是纯虚拟父类,另一个是从父类继承的。两者都被模板化为采用泛型类型和仿函数。例如:
template<typename T, typename funct>
class pure_virtual{
//pure virtual members
}
template<typename T, typename funct>
class child : public pure_virtual{
//members
}
在我的主目录中,我想在不使用动态内存的情况下创建一个指向我的子类的 pure_virtual 指针。例如:
int main(){
pure_virtual<int*,my_functor>* p;
child<int*,my_functor> c(my_functor);
p = &c;
return 0;
}
这个实现给了我一个编译错误,指出它不能将类型 child 转换为类型 pure_virtual。关于我在这里做错了什么的任何想法?我知道如果我使用动态分配,这将起作用;但是,如果可能的话,我真的很想避免它。
谢谢
【问题讨论】:
标签: c++ templates polymorphism