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