C++ Tutorial/Operator Overloading/overload cast operator
double cast operator
<source lang="cpp">#include <iostream> using namespace std; class Power {
double b; int e; double val;
public:
Power(double base, int exp) { b = base; e = exp; val = 1; if(exp==0) return; for( ; exp>0; exp--) val = val * b; } Power operator+(Power o) { double base; int exp; base = b + o.b; exp = e + o.e; Power temp(base, exp); return temp; } operator double() { return val; } // convert to double
}; int main() {
Power x(4.0, 2); double a; a = x; // convert to double cout << x + 1.2; // convert x to double and add 100.2 cout << "\n"; Power y(3.3, 3), z(0, 0); z = x + y; // no conversion a = z; // convert to double cout << a; return 0;
}</source>
17.2 20730.7"