Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

연산자 오버로딩을 사용하여 복소수를 빼는 C++ 프로그램

<시간/>

연산자 오버로딩은 C++의 대부분의 기본 제공 연산자를 사용하여 수행할 수 있습니다. 오버로드된 연산자는 operator 키워드 뒤에 정의된 연산자 기호가 오는 함수입니다. 오버로드된 연산자에는 다른 함수와 마찬가지로 반환 유형과 매개변수 목록이 있습니다.

연산자 오버로딩을 사용하여 복소수를 빼는 프로그램은 다음과 같습니다 -

예시

#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 클래스는 복소수의 실수부와 허수부 각각에 대해 real 및 img 변수를 갖는 클래스를 정의합니다. 생성자 ComplexNum은 real 및 imag의 값을 초기화하는 데 사용됩니다. 또한 기본값은 0으로 포함됩니다. 이는 다음 코드 스니펫에 표시됩니다. -

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

오버로드된 연산자인 함수에는 오버로드되는 연산자인 - 뒤에 키워드 operator가 포함됩니다. 이 함수는 두 개의 복소수를 빼고 결과는 객체 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;
}