Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 明示的型変換 | その他のデータ型と概念
C++データ型

book明示的型変換

メニューを表示するにはスワイプしてください

int型の変数を扱う場合、単なる数値ではなく、変数の値をdoublefloatに変換する必要があります。これには次の構文を使用します。

main.cpp

main.cpp

copy
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

main.cpp

copy
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

main.cpp

copy
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 はより制限的であり、複雑なデータ型で予期しない動作を防ぐことができるため、推奨されます。

question mark

型変換を行う正しい方法をすべて選択してください。

すべての正しい答えを選択

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 4.  7

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 4.  7
some-alt