#include <iostream>
class rational {
public:
rational( int iNum, int iDen ) : num( iNum ), den( iDen ) {}
// ...
operator double() { return (double)num / (double)den; }
private:
int num;
int den;
};
int main()
{
rational r( 1, 2 );
double n = r;
std::cout << r << std::endl; // output 0.5
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgcmF0aW9uYWwgewogICAgcHVibGljOiAKICAgICAgICByYXRpb25hbCggaW50IGlOdW0sIGludCBpRGVuICkgOiBudW0oIGlOdW0gKSwgZGVuKCBpRGVuICkge30KCiAgICAgICAgLy8gLi4uIAogICAgICAgIG9wZXJhdG9yIGRvdWJsZSgpIHsgcmV0dXJuIChkb3VibGUpbnVtIC8gKGRvdWJsZSlkZW47IH0KCiAgICBwcml2YXRlOiAKICAgICAgICBpbnQgbnVtOwogICAgICAgIGludCBkZW47CiAgICB9OwoKICAgIGludCBtYWluKCkKICAgIHsKICAgICAgICByYXRpb25hbCByKCAxLCAyICk7CiAgICAgICAgZG91YmxlIG4gPSByOwoKICAgICAgICBzdGQ6OmNvdXQgPDwgciA8PCBzdGQ6OmVuZGw7IC8vIG91dHB1dCAwLjUKICAgICAgICByZXR1cm4gMDsKICAgIH0=