我有以下问题:
class Base
{
};
class Derived : public Base
{
};
class Different
{
};
class X
{
public:
template <typename T>
static const char *func(T *data)
{
// Do something generic...
return "Generic";
}
static const char *func(Base *data)
{
// Do something specific...
return "Specific";
}
};
Run Code Online (Sandbox Code Playgroud)
如果我现在这样做
Derived derived;
Different different;
std::cout << "Derived: " << X::func(&derived) << std::endl;
std::cout << "Different: " << X::func(&different) << std::endl;
Run Code Online (Sandbox Code Playgroud)
我明白了
Derived: Generic
Different: Generic
Run Code Online (Sandbox Code Playgroud)
但我想要的是,对于从Base派生的所有类,调用特定方法.所以结果应该是:
Derived: Specific
Different: …Run Code Online (Sandbox Code Playgroud)