I was wondering if it\'s possible to make my
class Time
{
public:
Time();
explicit
Time(
const double& d);
You should declare operator double () const
to make Time
convertible to double
.
There is no way to overload the assignment operator for primitive types.
It appears likely that the error you've cited arises from having marked your Time(const double &d)
as explicit
. Remove the explicit, and implicit conversion from double
to Time
should work (with the proviso that this may also let it happen at times you'd rather it didn't). I'd probably also pass the double by value rather than const reference.
Converting from Time to double would be accomplished with:
class Time {
// ...
operator double() const;
};
You have to write/override an operator. In this case the cast-operator. Define a method
operator double() { return double_however_computed_from_your_time; };