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に値を代入する際、コンパイラは整数値を期待しますが、異なる型が渡された場合は型変換が行われます)。

  • 赤い矢印はデータ損失を示す。例えば、float から long(または int)へ変換すると、小数部分が失われる。
  • 緑の矢印はデータ損失がないことを示す。例えば、int から long への変換は安全で、結果は同じになる。
  • 黄色の矢印は、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