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

演算子のオーバーロードを使用して複素数を減算するC++プログラム


演算子のオーバーロードは、C++のほとんどの組み込み演算子を使用して実行できます。オーバーロードされた演算子は、キーワード演算子の後に定義された演算子記号が続く関数です。オーバーロードされた演算子には、他の関数と同様に、戻り値の型とパラメーターのリストがあります。

演算子のオーバーロードを使用して複素数を減算するプログラムは次のとおりです-

#include<iostream>
using namespace std;
class ComplexNum {
   private:
   int real, imag;
   public:
   ComplexNum(int r = 0, int i =0) {
      real = r;
      imag = i;
   }
   ComplexNum operator - (ComplexNum const &obj1) {
      ComplexNum obj2;
      obj2.real = real - obj1.real;
      obj2.imag = imag - obj1.imag;
      return obj2;
   }
   void print() {
      if(imag>=0)
      cout << real << " + i" << imag <<endl;
      else
      cout << real << " + i(" << imag <<")"<<endl;
   }
};
int main() {
   ComplexNum comp1(15, -2), comp2(5, 10);
   cout<<"The two comple numbers are:"<<endl;
   comp1.print();
   comp2.print();
   cout<<"The result of the subtraction is: ";
   ComplexNum comp3 = comp1 - comp2;
   comp3.print();
}

出力

The two comple numbers are:
15 + i(-2)
5 + i10
The result of the subtraction is: 10 + i(-12)

上記のプログラムでは、複素数の実数部と虚数部にそれぞれ実数と虚数の変数を持つComplexNumクラスが定義されています。コンストラクターComplexNumは、realとimagの値を初期化するために使用されます。また、デフォルト値として0が含まれています。これは次のコードスニペットに示されています-

class ComplexNum {
   private:
   int real, imag;
   public:
   ComplexNum(int r = 0, int i =0) {
      real = r;
      imag = i;
   }
}

オーバーロードされた演算子である関数には、キーワード演算子の後に-が続きます。これは、オーバーロードされている演算子です。この関数は2つの複素数を減算し、結果はオブジェクトobj2に格納されます。次に、この値がComplexNumオブジェクトcomp3に返されます。

次のコードスニペットはこれを示しています-

ComplexNum operator - (ComplexNum const &obj1) {
   ComplexNum obj2;
   obj2.real = real - obj1.real;
   obj2.imag = imag - obj1.imag;
   return obj2;
}

print()関数は、複素数の実数部と虚数部を出力します。これは次のように表示されます。

void print() {
   if(imag>=0)
   cout << real << " + i" << imag <<endl;
   else
   cout << real << " + i(" << imag <<")"<<endl;
}

  1. 再帰を使用して数値の階乗を計算するC++プログラム

    非負の整数nの階乗は、n以下のすべての正の整数の積です。 例:7の階乗は5040です。 7! = 7 * 6 * 5 * 4 * 3 * 2 *1 7! = 5040 再帰を使用して数値の階乗を計算するコードを見てみましょう。 例 #include <iostream> using namespace std; int fact(int n) {    if ((n==0)||(n==1))    return 1;    else    return n*fact(n-1); } int main

  2. C ++で単項演算子をオーバーロードしますか?

    operatorキーワードは、クラスのインスタンスに適用されたときにoperator-symbolが何を意味するかを指定する関数を宣言します。これにより、演算子に複数の意味が与えられるか、「オーバーロード」されます。コンパイラーは、オペランドのタイプを調べることにより、演算子のさまざまな意味を区別します。 単項演算子は単一のオペランドで動作し、以下は単項演算子の例です- インクリメント(++)およびデクリメント(-)演算子。 単項マイナス(-)演算子。 論理否定(!)演算子。 単項演算子は、呼び出されたオブジェクトを操作します。通常、この演算子は、!obj、-obj、および++ obj