class A {...}
class B : public A {...}
class C : public A {...}
void M(A* a) {
A* aa = new B(* a)
...
}
int main()
{
B b = new B();
M(b);
...
}
所以我想要做的是调用传递给 M 的对象(“a”)的复制构造函数,而不必知道它是 B 类型还是 C 等类型(而不是上面的“new B(a)” )。
当然,我可以使用动态强制转换并检查 null ptr 等或使用 typeid,但必须有更简单的方法吗?
提前致谢。