我正在尝试为类模板创建某种回调。代码是这样的:
template <typename t>
class Foo {
void add(T *t) {
prinf('do some template stuff');
on_added(t);
}
void on_added(T *t) { }
}
struct aaa {}
class Bar : Foo<aaa> {
void on_added(aaa *object) {
printf("on added called on Bar");
}
}
Bar上的on_added函数永远不会被调用。添加模板子类可以选择覆盖的回调的最佳方法是什么?谢谢
最佳答案
使用“虚拟” ...
template <typename t>
class Foo {
void add(T *t) {
prinf('do some template stuff');
on_added(t);
}
virtual void on_added(T *t) { }
}
struct aaa {}
class Bar : Foo<aaa> {
void on_added(aaa *object) {
printf("on added called on Bar");
}
}
关于c++ - 覆盖模板化的类函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3488509/