이 기사에서는 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