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

book暗黙的型変換

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

型変換は常に発生します。これは、コンパイラによって自動的に行われる暗黙的変換の場合もあれば、コード内で明示的に型を変換する明示的変換の場合もあります。

main.cpp

main.cpp

copy
1234567
#include <iostream> int main() { int num = 6.5; // Implicit type conversion std::cout << num << std::endl; }

例では、6.5 という浮動小数点数が暗黙的に int 型へ変換されています(小数部分が切り捨てられます)。

暗黙的型変換は、変数の型がコンパイラの期待する型と一致しない場合に発生します(例えば、int に値を代入する際、コンパイラは整数値を期待しますが、異なる型が渡された場合は型変換が行われます)。

  • 赤い矢印 はデータ損失を示します。例えば、floatlong(または int)に変換すると、小数部分が失われます。
  • 緑の矢印 はデータ損失がないことを示します。例えば、intlong に安全に変換でき、結果は同じです。
  • 黄色い矢印 は、long(または int)から float(または long)への変換で、float(または long)の精度が不十分な場合にデータ損失が発生することがあることを示します。
main.cpp

main.cpp

copy
1234567891011
#include <iostream> #include <iomanip> int main() { int num_int = 123456789; float num_float = num_int; std::cout << std::setprecision(10); std::cout << num_float << std::endl; }

暗黙的型変換のもう一つの例は、+-*/ 演算です。これらは同じデータ型の変数に対して実行される必要があります。そうでない場合、C++ は暗黙的に型昇格を行います。例えば、int / double -> double / double となります。

暗黙的型変換が発生するもう一つの例は、条件式です。例えば、if 文です。

条件式には bool 型が期待されますが、暗黙的型変換のおかげで他のデータ型も条件として渡すことができます。以下の画像は、それらがどのように bool に変換されるかを示しています。

question mark

C++において、暗黙的な型変換によってデータ損失が発生する可能性がある代入はどれですか?

正しい答えを選んでください

すべて明確でしたか?

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

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

セクション 4.  6

AIに質問する

expand

AIに質問する

ChatGPT

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

セクション 4.  6
some-alt