C ++重载Typecast到Double

时间:2015-04-09 04:10:26

标签: c++

我正在进行另一项任务,我无法弄清楚如何将类型转换超重。我需要提供实现。会感激一些帮助。谢谢!

这是我的HugeInteger.h文件中的函数prototype / declaration。

operator double(void)const;

以下是测试重载类型强制转换为double运算符的代码示例。

cout << "\n****** Test overloaded type cast to double operator ******\n";
    cout << "\nA = " << A << "\nB = " << B << "\n";
    double dA = (double)A;             // one way to invoke cast operator
    double dB = static_cast<double>(B); // another way to invoke cast operator
    cout << "\nA cast to a double is: " << dA;
    cout << "\nB cast to a double is: " << dB << '\n' << endl;

1 个答案:

答案 0 :(得分:0)

    struct Money {
         operator double() { return _amount; }

     private:
          double _amount;
   };

   int main() {
       Money Account;
      double CashOnHand = Account;
   }

这是Micrsoft的一个演示。它是从用户类型到双倍的类型转换(自动)。所以我认为这是一个很好的工作方式。您不仅限于此功能,您可以在其中执行更多操作,或围绕它构建框架。我希望这是有帮助的。 顺便说一句,暧昧!!!