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

変換演算子はC++でどのように機能しますか?


この記事では、C++の変換演算子とは何かを説明します。 C++はオブジェクト指向設計をサポートしています。したがって、いくつかの実世界のオブジェクトのクラスを具象型として作成できます。

場合によっては、いくつかの具象型オブジェクトを他の型オブジェクトまたはいくつかのプリミティブデータ型に変換する必要があります。この変換を行うには、変換演算子を使用できます。これは、クラスの演算子オーバーロード関数のように作成されます。

この例では、複素数のクラスを取得しています。実数と虚数の2つの引数があります。このクラスのオブジェクトをいくつかのdouble型データに割り当てると、変換演算子を使用してその大きさに変換されます。

サンプルコード:

#include <iostream>
#include <cmath>
using namespace std;
class My_Complex {
   private:
      double real, imag;
   public:
      My_Complex(double re = 0.0, double img = 0.0) : real(re), imag(img)    //default constructor {}
      double mag() {       //normal function to get magnitude
         return getMagnitude();
      }
      operator double () { //Conversion operator to gen magnitude
         return getMagnitude();
      }
      private:
         double getMagnitude() { //Find magnitude of complex object
            return sqrt(real * real + imag * imag);
         }
   };
   int main() {
      My_Complex complex(10.0, 6.0);
      cout << "Magnitude using normal function: " << complex.mag() << endl;
      cout << "Magnitude using conversion operator: " << complex << endl;
}

出力

Magnitude using normal function: 11.6619
Magnitude using conversion operator: 11.6619

  1. インライン変数はC++/ C ++ 17でどのように機能しますか?

    C ++では、関数にinlineキーワードを使用できます。 C ++ 17バージョンでは、インライン変数の概念が導入されました。 インライン変数は、複数の変換単位で定義できます。また、単一定義規則に従います。これが複数回定義されている場合、コンパイラはそれらすべてを最終プログラムの1つのオブジェクトにマージします。 C ++(C ++ 17バージョンより前)では、静的変数の値をクラスで直接初期化することはできません。クラスの外でそれらを定義する必要があります。 サンプルコード #include<iostream> using namespace std; class MyCla

  2. C++で例外はどのように機能しますか

    C ++では、例外処理はランタイムエラーを処理するプロセスです。例外は、C++で実行時にスローされるイベントです。すべての例外は、std::exceptionクラスから派生します。処理可能なランタイムエラーです。例外を処理しない場合は、例外メッセージを出力してプログラムを終了します。 例外は、C ++標準では、プログラム内で使用できるクラスとして定義されています。親子クラス階層の配置を以下に示します- C++の一般的な例外クラスは-です。 Sr.No。 例外と説明 1 std ::exception これは、すべての標準C++例外の例外および親クラスです。