最近在程序中遇到指针所调用的函数不是写的函数,如程序执行到 p -> SetName(),指针p调用的不是SetName(),而是其他的函数或者不是我想要的某个类中的SetName().这种错误一般是堆栈的错误,现在发现引起这个错误的两个原因如下:
1. 链接引起的,把所在的工程和相关联的工程clean后,重新编译就可以解决。
2.指针的强制转换引起的,比如 p想调用A类的这个SetName(),但 p 现在确是 B类的指针,这样就会出现错误。指针的函数表就会出现错误
解决办法是,保持类型的一致性