关于类型转换的一件小事
今天工作的时候,因为要在一个回调函数中调用所属类的非静态成员。我原来对这个回调函数的参数不是很了解,问了师傅,说其中一个虚参const void* p是那个我需要的指针。用的时候当然要转换一下了,师傅说为了安全要用dynamic_cast。结果编译不通过,报错为source is not a pointer to class。没办法,只能用C风格的强制转换了。师傅很感慨,这样不好,可是怎么办呢?或许设计库的人本身就考虑不周,应该把整个库的所有类都继承自一个根类CRoot,这样这个虚参可以定义为const CRoot* p。不过,这样会不会有什么问题呢?
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
