5

我正在从一本书(Schaums Programming with c++)中自学C++,我遇到了一些我想尝试但没有涵盖的东西(据我所知)。

我有一个包含hrs: mins:的类secs。是否可以编写一个类型转换,以整数形式返回对象?

如果不是,那可能就是我找不到任何东西的原因。谢谢。

4

3 回答 3

14

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

class MyTime
{
    ...

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

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

于 2012-12-05T18:45:21.100 回答
2

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

于 2012-12-05T18:44:16.327 回答
0

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

于 2012-12-05T18:43:59.743 回答