如果是这段代码,为什么foo(d)
会调用模板函数而不是' base'功能?有没有办法让它调用基函数而不显式写另一个函数重载?
template <class T> void foo(T val)
{
printf("template called\n");
}
class Base
{
};
void foo(const Base &val)
{
printf("Base called\n");
}
class Derived : public Base
{
};
int main() {
Derived d;
foo(d);
return 0;
}