c++中子类和父类的强制转换

只有子类转换成父类,父类不能转换成子类。

因为子类是从父类继承而来,子类中包含父类中所有成员。

而如果父类可以转换成子类,意味着将子类中将有一部分是未知的成员。这是不被允许的。

要是确定父类转换成子类你能保证是正确的,可以用强制转换:

子类强制转换为父类用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);

使用什么强制转换方法视情况而定。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章