明示的型変換
メニューを表示するにはスワイプしてください
int型の変数を扱う場合、単なる数値ではなく、変数の値をdoubleやfloatに変換する必要があります。これには次の構文を使用します。
main.cpp
12345678910#include <iostream> int main() { int num1 = 9; int num2 = 4; std::cout << "No conversion: " << num1 / num2 << std::endl; std::cout << "With conversion: " << (double)num1 / num2 << std::endl; }
型変換を明示的に行う方法はいくつかあります。この方法はCスタイルの変換と呼ばれます。
main.cpp
123456789101112#include <iostream> int main() { float num = 6.5; std::cout << (int)num << std::endl; // 6.5 to `int` is 6 std::cout << (bool)num << std::endl; // 6.5 to `bool` is true // Or std::cout << int(num) << std::endl; // 6.5 to `int` is 6 std::cout << bool(num) << std::endl; // 6.5 to `bool` is true }
この方法は簡潔ですが、変換の意図や性質が明確に示されないため、曖昧さや誤用の可能性があります。
より明示的で安全なキャスト演算子を使用することで、型変換をより適切に制御できます。
ほとんどの場合、static_conversion のみが必要です。他のキャストについては詳しく説明しません。構文は以下の通りです:
main.cpp
12345678#include <iostream> int main() { float num = 6.5; std::cout << static_cast<int>(num) << std::endl; // 6.5 to `int` is 6 std::cout << static_cast<bool>(num) << std::endl; // 6.5 to `bool` is true }
これらすべての違いについては説明しません。一般的に、static_cast はより制限的であり、複雑なデータ型で予期しない動作を防ぐことができるため、推奨されます。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 4. 章 7
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 4. 章 7