C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++のキャスト演算子とは何ですか?


キャストは、あるデータ型を別のデータ型に強制的に変換する特別な演算子です。演算子として、キャストは単項であり、他の単項演算子と同じ優先順位を持ちます。

ほとんどのC++コンパイラでサポートされている最も一般的なキャストは次のとおりです-

(type) expression
ここでtypeは目的のデータ型です。 C ++でサポートされている他のキャスト演算子があります。それらは、以下にリストされています-

  • const_cast (expr)-const_cast演算子は、キャスト内のconstおよび/またはvolatileを明示的にオーバーライドするために使用されます。ターゲットタイプは、constまたはvolatile属性の変更を除いて、ソースタイプと同じである必要があります。このタイプのキャストは、渡されたオブジェクトのconst属性を操作して、設定または削除します。
  • dynamic_cast (expr)-dynamic_castは、キャストの有効性を検証するランタイムキャストを実行します。キャストを作成できない場合、キャストは失敗し、式はnullと評価されます。 dynamic_castは、ポリモーフィックタイプでキャストを実行し、ポイントされているオブジェクトが実際にBオブジェクトである場合にのみ、A*ポインターをB*ポインターにキャストできます。
  • reinterpret_cast (expr)-reinterpret_cast演算子は、ポインターを他のタイプのポインターに変更します。また、ポインタから整数型へのキャスト、およびその逆のキャストも可能です。
  • static_cast (expr)-static_cast演算子は、非ポリモーフィックキャストを実行します。たとえば、基本クラスポインタを派生クラスポインタにキャストするために使用できます。
これらのキャストは非常にケース固有です。コンパイラによって実装されたキャストの例を考えてみましょう-

#include <iostream>
using namespace std;
main() {
   double a = 21.09399;
   float b = 10.20;
   int c ;
   c = (int) a;
   cout << "Line 1 - Value of (int)a is :" << c << endl ;
   c = (int) b;
   cout << "Line 2 - Value of (int)b is  :" << c << endl ;
   return 0;
}
出力 これにより出力が得られます-

Line 1 - Value of (int)a is :21
Line 2 - Value of (int)b is  :10

  1. C++のconst_cast-型キャスト演算子

    与えられたタスクは、c++でのconst_castの動作を示すことです。 const_castは、型キャスト演算子の1つです。これは、任意のオブジェクトの定数値を変更するために使用されます。または、任意のオブジェクトの定数の性質を削除するために使用されると言えます。 const_castは、ある時点で時々変更する必要がある定数値を持つオブジェクトを持つプログラムで使用できます。 構文 構文は次のとおりです- const_cast<type name>(expression) 例 Input: const int x = 50; const int* y = &x; c

  2. C / C ++での型キャストとは何ですか?

    型キャストは、変数をあるデータ型から別のデータ型に変換する方法です。たとえば、「long」値を単純な整数に格納する場合は、「cast」「long」を「int」と入力できます。 キャスト演算子を使用して、値をあるタイプから別のタイプに明示的に変換できます。 次のように- (type_name) expression キャスト演算子によって、ある整数変数を別の整数変数で除算することが浮動小数点演算として実行される次の例を考えてみます- 例 #include <stdio.h> main() {    int sum = 17, count = 5;