在c ++中使用转换运算符有什么用处

时间:2014-12-19 04:42:08

标签: c++

我一直在阅读有关运算符重载的内容,但我并不了解什么是转换运算符以及它是如何有用的。有人可以用一个例子来解释???

1 个答案:

答案 0 :(得分: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;
}