C++ 类:读取值表现为不同的类型
C++ classes: read value behave as different types
我想创建一个与此类似的 class:
class MyTime {
public:
int seconds;
int useconds;
/*** functions ***/
}
但具有以下行为:
MyTime now;
double current_time = now; // returns double representing seconds
有没有无需定义 asDoubleSeconds()
函数就可以做到这一点的方法?我可以通过某种方式重载赋值运算符来改变行为吗?
如果没有,有没有办法做这样的事情:
double current_time = double(now);
是,实施 user-defined conversion operator:
class MyTime {
// ...
operator double() const;
};
MyTime::operator double() const {
// compute and return a double
}
我想创建一个与此类似的 class:
class MyTime {
public:
int seconds;
int useconds;
/*** functions ***/
}
但具有以下行为:
MyTime now;
double current_time = now; // returns double representing seconds
有没有无需定义 asDoubleSeconds()
函数就可以做到这一点的方法?我可以通过某种方式重载赋值运算符来改变行为吗?
如果没有,有没有办法做这样的事情:
double current_time = double(now);
是,实施 user-defined conversion operator:
class MyTime {
// ...
operator double() const;
};
MyTime::operator double() const {
// compute and return a double
}