[英]Casting the proper way in C++
如果這不被認為是一個足夠好的問題我會道歉(因為我自己的解決方案正常,所以我實際上沒有問題),但是這里有。
我的意思是,我在C上長大,后來才學會了C ++,所以也許我有偏見,但仍然。
在這種特殊情況下,有一個庫返回一個const char*
,而另一個庫需要一個void*
作為輸入。 因此,如果我想用第一個庫的結果調用第二個庫,我將需要編寫
second(const_cast<void*>(static_cast<const void*>(first())));
對? 那是唯一合適的方式,對吧?
char*
可以隱式轉換為void*
,因此您的代碼可以簡化為:
second(const_cast<char*>(first()));
這是,如果定義唯一安全的second
仿佛它的參數有類型工作的const void*
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.