2014-12-19 2 views
-1

Я читал о перегрузке оператора, и я не понимаю, что такое оператор преобразования и как он полезен. Может ли кто-нибудь объяснить пример? ???Что такое оператор преобразования в C++

+0

Вы имеете в виду способ обеспечения путь преобразования между одним типом и другим? – tadman

+0

http://en.cppreference.com/w/cpp/language/cast_operator –

ответ

0

Операторы преобразования помогают программисту преобразовать один конкретный тип в другой конкретный тип или импотенцию примитивного типа. Ниже приведен пример, взятый из http://www.geeksforgeeks.org/advanced-c-conversion-operators/

примере:

#include <iostream> 
#include <cmath> 

using namespace std; 

class Complex 
{ 
private: 
    double real; 
    double imag; 

public: 
    // Default constructor 
    Complex(double r = 0.0, double i = 0.0) : real(r), imag(i) 
    {} 

    // magnitude : usual function style 
    double mag() 
    { 
     return getMag(); 
    } 

    // magnitude : conversion operator 
    operator double() 
    { 
     return getMag(); 
    } 

private: 
    // class helper to get magnitude 
    double getMag() 
    { 
     return sqrt(real * real + imag * imag); 
    } 
}; 

int main() 
{ 
    // a Complex object 
    Complex com(3.0, 4.0); 

    // print magnitude 
    cout << com.mag() << endl; 
    // same can be done like this 
    cout << com << endl; 
} 
Смежные вопросы