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