我正在从一本书(Schaums Programming with c++)中自学C++,我遇到了一些我想尝试但没有涵盖的东西(据我所知)。
我有一个包含hrs
: mins
:的类secs
。是否可以编写一个类型转换,以整数形式返回对象?
如果不是,那可能就是我找不到任何东西的原因。谢谢。
当然,您只需要编写一个强制转换运算符。假设您要将时间转换为秒:
class MyTime
{
...
public:
operator int() const
{
return hours_ * 3600 + minutes_ * 60 + seconds_;
}
}
在 C++11 中,您还可以将关键字添加explicit
到您的运算符,以便您的强制转换明确需要 astatic_cast<int>
才能编译。
假设这是一个分辨率为秒的持续时间,那么是的 - 类似的东西hours * 3600 + minutes * 60 + seconds
应该给你一个持续时间的整数秒。
您可以编写一个函数来将您的类转换为所需的整数值。类型转换方法可以重载。见这里: http: //www.learncpp.com/cpp-tutorial/910-overloading-typecasts/