我很抱歉,如果这不是一个足够好的问题(因为我自己的解决方案正常,所以我实际上没有问题),但是这里有。
我的意思是,我在C上长大,后来才学会了C ++,所以也许我有偏见,但仍然。
在这种特殊情况下,有一个库返回const char*
,而另一个库需要void*
作为输入。因此,如果我想用第一个库的结果调用第二个库,我将需要编写
second(const_cast<void*>(static_cast<const void*>(first())));
右?那是唯一正确的方法,对吧?
答案 0 :(得分:8)
char*
可以隐式转换为void*
,因此您的代码可以简化为:
second(const_cast<char*>(first()));
如果second
的定义操作,就好像其参数的类型为const void*
一样,这是安全的。