在C ++中使用正确的方法

时间:2012-01-02 09:16:11

标签: c++ casting

我很抱歉,如果这不是一个足够好的问题(因为我自己的解决方案正常,所以我实际上没有问题),但是这里有。
我的意思是,我在C上长大,后来才学会了C ++,所以也许我有偏见,但仍然。

在这种特殊情况下,有一个库返回const char*,而另一个库需要void*作为输入。因此,如果我想用第一个库的结果调用第二个库,我将需要编写

second(const_cast<void*>(static_cast<const void*>(first())));

右?那是唯一正确的方法,对吧?

1 个答案:

答案 0 :(得分:8)

char*可以隐式转换为void*,因此您的代码可以简化为:

second(const_cast<char*>(first()));

如果second的定义操作,就好像其参数的类型为const void*一样,这是安全的。