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

변환 연산자는 C++에서 어떻게 작동합니까?

<시간/>

이 기사에서는 C++에서 변환 연산자가 무엇인지 살펴보겠습니다. C++는 객체 지향 설계를 지원합니다. 따라서 일부 실제 개체의 클래스를 구체적인 유형으로 만들 수 있습니다.

때때로 우리는 일부 구체적인 유형 객체를 다른 유형 객체 또는 일부 기본 데이터 유형으로 변환해야 합니다. 이 변환을 수행하려면 변환 연산자를 사용할 수 있습니다. 이것은 클래스의 연산자 오버로딩 함수처럼 생성됩니다.

이 예에서 우리는 복소수에 대한 수업을 듣고 있습니다. 여기에는 실제와 가상의 두 가지 인수가 있습니다. 이 클래스의 개체를 일부 이중 유형 데이터에 할당하면 변환 연산자를 사용하여 크기로 변환됩니다.

예시 코드:

#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