基类指针强制转换成派生类的问题

[复制链接]
查看11 | 回复2 | 2013-3-21 15:22:05 | 显示全部楼层 |阅读模式
既然转换了那就是指向派生类了,调用函数不涉及到变量还可以,如果涉及到变量就是不安全的了,比较常规的做法是派生类指针转换成基类的调用init函数是派生类继承自基类的函数...
回复

使用道具 举报

千问 | 2013-3-21 15:22:05 | 显示全部楼层
虽然编译没有错,但是这种写法是很有问题的,会有一些未定义行为的。a指针还是指向基类A的具体对象,但是a指针的类型已经是B类的类型了,调用的init()函数式B继承下来的。为什么A类的具体对象能够调用Init2函数呢,因为当(B*)a->Init2()时,编译器看到是属于B类型的指针调用,能够调用Init2,但是调用Init2时是有很大隐患的。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行