只有子类转换成父类,父类不能转换成子类。
因为子类是从父类继承而来,子类中包含父类中所有成员。
而如果父类可以转换成子类,意味着将子类中将有一部分是未知的成员。这是不被允许的。
要是确定父类转换成子类你能保证是正确的,可以用强制转换:
子类强制转换为父类用static_cast<>:(a : public A)
A * book;
a* name;
book = static_cast<A*>(name);
父类转换为子类用dynamic_cast<>:
A * book;
a* name;
name = dynamic_cast<a*>(book);
使用什么强制转换方法视情况而定。