C语言模仿面向对象编程继承问题
例如:父类 A子类 B
B继承A
有谁能从原理上解释一下以下几种情况?
指向父类的指针可以直接强转为指向子类的指针;
A *a;
B *b = (B*)a;//正确
父类对象不能直接转换成子类对象,但是子类对象可以向上转型成父类对象。
A a;
B b = (B)a;//错误
.......
B b;
A a = (A)b; //正确
.......
先将子类强制转换为父类,然后用此父类强制转换为另外一个子类.
B b;
A a = (B)b;
B c = (B)a ;正确
[此贴子已经被作者于2017-7-28 11:09编辑过]