我想创建一个类似于此的类:
class MyTime {
public:
int seconds;
int useconds;
/*** functions ***/
}
但其行为如下:
MyTime now;
double current_time = now; // returns double representing seconds
有没有办法在不必定义asDoubleSeconds()
函数的情况下执行此操作?我可以通过以某种方式重载赋值运算符来改变行为吗?
如果没有,有没有办法做这样的事情:
double current_time = double(now);
答案 0 :(得分:4)
是的,实施user-defined conversion operator:
class MyTime {
// ...
operator double() const;
};
MyTime::operator double() const {
// compute and return a double
}