指针强转注意的问题

来源:互联网 发布:网络 泥石流 什么 意思 编辑:程序博客网 时间:2024/05/18 03:04

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

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

 

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

 

 

 

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

 

 

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

 

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

 

 

原创粉丝点击