指针强转注意的问题

如果被转类型里面有虚函数,强转的指针是不能Call这个虚函数的。

即便这个虚函数有实现,也会被认为是地址是0的函数。不是强转的指针就没有这个现象。详细说明如下:

 

例如有下面两个类,他们之间是继承关系。

 

 

 

如果有如下的调用,将会发生访问例外:

 

 

原因个人认为,是因为强转的情况,虚函数表无法强转为子类的虚表,所以调用子类的虚函数,只能得到地址为0的函数。

 

但是如果InitPanel这个函数不定义为虚函数,那么也就和虚表没有什么关系了,也就可以正常调用了。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值