以下がキャストです。
int foo = (int) somefloat;
しかし、これはキャストと見なされますか?
int foo = int( somefloat );
さらに重要なことは、2 つに違いがある場合、結果としてコンパイルされたコードは異なるのでしょうか?
2 番目の例は、関数スタイル キャストと呼ばれることが多く、C++ に追加されましたが、セマンティクス/オブジェクト コードに関しては 2 つに違いはありません。
関数スタイルのキャストが追加された理由の良い説明は次のとおりです。
結果の違いはありませんが、C で使用できるのは最初の例だけです。C++ では両方を使用できます。
はい、これもキャストです。C++ ではこのスタイルのキャストが可能で、C には(type)expression
フォーマット キャストしかありません。それらは同等です。