[解決済み] C++形式のキャストでintをcharにキャストする [重複] [重複
2022-03-09 16:46:26
質問
従来のC言語では、こういったことができます。
int i = 48;
char c = (char)i;
//Now c holds the value of 48.
//(Of course if i > 255 then c will not hold the same value as i).
c++のキャストメソッド(static_cast、reinterpret_cast)のうち、この仕事を成し遂げるのに向いているのはどれでしょうか?
どのように解決するのですか?
数値型間の変換は、精度が落ちる場合でも暗黙のうちに行うことができます。
char c = i;
しかし、このような潜在的に損失の大きい変換を避けるために、コンパイラの警告を有効にしたい場合があります。もしそうするならば
static_cast
を変換します。
他のキャストの
-
dynamic_cast
は、ポインタまたは多相クラス型への参照に対してのみ動作します。 -
const_cast
は型を変更することができません。const
またはvolatile
の修飾子があります。 -
reinterpret_cast
は特殊な状況で、ポインタや参照と全く関係のない型との間で変換を行うためのものです。具体的には、数値の変換は行いません。 -
C スタイルおよび関数スタイルのキャストは、以下の組み合わせで行います。
static_cast
,const_cast
とreinterpret_cast
が必要なのです。
関連
-
[解決済み] std::string を const char* または char* に変換する方法
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] intをenumにキャストするにはどうすればよいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] C#でenumからint値を取得する
-
[解決済み] C++でintをstringに変換する最も簡単な方法
-
[解決済み] const int*、const int * const、int const *の違いは何ですか?
-
[解決済み] std::stringをintに変換するにはどうしたらいいですか?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み】なぜJavaの+=, -=, *=, /=複合代入演算子はキャスティングを必要としないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] エラーが発生する。ISO C++は型を持たない宣言を禁じています。
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み】オブジェクト引数のない非静的メンバ関数の呼び出し コンパイラーエラー
-
[解決済み】リンカーエラーです。"リンカ入力ファイルはリンクが行われていないため未使用"、そのファイル内の関数への未定義参照
-
[解決済み】C++の余分な資格エラー
-
[解決済み] 非静的データメンバの無効な使用
-
[解決済み】std::cin.getline( ) vs. std::cin
-
[解決済み] レギュラーキャスト vs スタティックキャスト vs ダイナミックキャスト [重複]の比較
-
[解決済み] static_cast, dynamic_cast, const_cast, reinterpret_cast はいつ使うべきですか?
-
[解決済み] なぜ (int)x ではなく static_cast<int>(x) を使うのですか?