C ++类将Object转换为Integer

时间:2012-12-05 18:40:59

标签: c++ integer

我是从一本书(使用c ++进行Schaums编程)自学C ++而且我遇到了一些我想尝试的东西,但它没有涵盖(尽管我能说得公平)。

我的课程包含hrsminssecs。 是否可以编写一个类型转换,它将以整数形式返回Object作为整数?

如果不是那可能就是为什么我找不到任何东西。感谢。

3 个答案:

答案 0 :(得分:11)

当然,你只需要编写一个强制转换操作符。假设您想将时间转换为秒:

class MyTime
{
    ...

public:
    operator int() const
    {
        return hours_ * 3600 + minutes_ * 60 + seconds_;
    }
}

在C ++ 11中,您还可以将关键字explicit添加到您的运算符中,以便您的强制转换显式需要static_cast<int>才能进行编译。

答案 1 :(得分:2)

假设这是一个分辨率为秒的持续时间,那么是 - hours * 3600 + minutes * 60 + seconds之类的东西应该在持续时间内给你一个整数秒。

答案 2 :(得分:0)

您可以编写一个函数将类转换为所需的整数值。类型转换方法可以重载。见这里:http://www.learncpp.com/cpp-tutorial/910-overloading-typecasts/