今天工作的时候,因为要在一个回调函数中调用所属类的非静态成员。我原来对这个回调函数的参数不是很了解,问了师傅,说其中一个虚参const void* p是那个我需要的指针。用的时候当然要转换一下了,师傅说为了安全要用dynamic_cast。结果编译不通过,报错为source is not a pointer to class。没办法,只能用C风格的强制转换了。师傅很感慨,这样不好,可是怎么办呢?或许设计库的人本身就考虑不周,应该把整个库的所有类都继承自一个根类CRoot,这样这个虚参可以定义为const CRoot* p。不过,这样会不会有什么问题呢?
关于类型转换的一件小事
最新推荐文章于 2023-11-21 16:12:11 发布