我一直在阅读有关运算符重载的内容,但我并不了解什么是转换运算符以及它是如何有用的。有人可以用一个例子来解释???
答案 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;
}