函数模板和派生 类
Function templates and derived classes
如果这段代码,为什么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;
}
如果这段代码,为什么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;
}