C 类:读取值以不同的类型为单位

C++ classes: read value behave as different types

本文关键字:类型 为单位 读取      更新时间:2023-10-16

我想创建一个类似于此类似的类:

class MyTime {
public:
    int seconds;
    int useconds;
    /*** functions ***/
}

但具有以下行为:

MyTime now;
double current_time = now; // returns double representing seconds

有没有办法无需定义asDoubleSeconds()函数?我可以通过以某种方式超载分配运算符来改变行为吗?

如果没有,是否有办法做这样的事情:

double current_time = double(now);

是的,实现用户定义的转换操作员:

class MyTime {
    // ...
    operator double() const;
};
MyTime::operator double() const {
    // compute and return a double
}