把衍生类别的指标转型成指向它的基底,可以吗?
可以。
衍生类别是该基底类别的特异化版本(衍生者「是一种」("a-kind-of") 基底)。这
种向上的转换是绝对安全的,而且常常会发生(如果我指向一个汽车 Car,实际上我
是指向一个车子 Vehicle):
void f(Vehicle* v);
void g(Car* c) { f(c); } //绝对很安全;不需要转型
注意:在这里我们假设的是 "public" 的继承;後面会再提到「另一种」"private/
protected" 的继承。
可以。
衍生类别是该基底类别的特异化版本(衍生者「是一种」("a-kind-of") 基底)。这
种向上的转换是绝对安全的,而且常常会发生(如果我指向一个汽车 Car,实际上我
是指向一个车子 Vehicle):
void f(Vehicle* v);
void g(Car* c) { f(c); } //绝对很安全;不需要转型
注意:在这里我们假设的是 "public" 的继承;後面会再提到「另一种」"private/
protected" 的继承。
Go confidently in the directions of your dreams,live the life you have imagined!Just do it!
It is no use learning without thinking!