我是从一本书(使用c ++进行Schaums编程)自学C ++而且我遇到了一些我想尝试的东西,但它没有涵盖(尽管我能说得公平)。
我的课程包含hrs
:mins
:secs
。
是否可以编写一个类型转换,它将以整数形式返回Object作为整数?
如果不是那可能就是为什么我找不到任何东西。感谢。
答案 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/