只有子類轉換成父類,父類不能轉換成子類。
因爲子類是從父類繼承而來,子類中包含父類中所有成員。
而如果父類可以轉換成子類,意味着將子類中將有一部分是未知的成員。這是不被允許的。
要是確定父類轉換成子類你能保證是正確的,可以用強制轉換:
子類強制轉換爲父類用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);
使用什麼強制轉換方法視情況而定。