簡體   English   中英

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

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM