C++中可以将对象进行类型转换,如下程序所示:
#include<iostream> class Fraction//分数 { public: Fraction(int num, int den = 1) : m_numerator(num), m_denominator(den) {} operator double() const { //return (m_numerator/(m_denominator*1.0)); return (m_numerator/(double)m_denominator); } private: int m_numerator;//分子 int m_denominator;//分母 }; int main(int argc, char* argv[]) { Fraction f(3,5); double d1 = 4 + f; std::cout <<"d1 = " << d1 << std::endl; Fraction f1(4); double d2 = 4 + f1; std::cout << "d2 = " << d2 << std::endl; return 0; }
在这个例子中,使用operator double() const {}将Fraction对象转换成double型(分子除以分母),运行结果如下图所示: