我有这些课程:
class A{};
class B{};
class C : public A{};
class D : public A, public B{};
我想做一个这样的模板函数:
template<typename T>
void f(T* arg);
并为它制作2个专业:
- 当 T 不使用继承或使用单继承时的一种
- 当 T 使用多重继承时
假设f_specialization1()
是第一种情况和f_specialization2()
(我知道嘿必须有相同的名字,这只是一个方便的约定)。我想要这种行为:
A a;
B b;
C c;
D d;
f(&a);//here f_specialization1 is called
f(&b);//here f_specialization1 is called
f(&c);//here f_specialization1 is called
f(&d);//here f_specialization2 is called
是否有可能实现这种行为?