I was wondering if it's possible to make my
class Time
{
public:
Time();
explicit
Time(
const double& d);
Time&
operator=(
const Time& time);
Time&
operator=(
const double& d);
};
assignable to the primitive double?
I'm using Time as an IV a lot and need to do a lot of scalar operations on it, so it needs to "mingle" with DV's which are usually ordinary doubles. Adding a second assignment operator did the trick the other way around.
A lot of operations still aren't possible with just this though. I've been writing operators outside of the Time class to allow for addition, substraction, multiplication and dividing between Time and double. But since assignment operators are not allowed outside a class, I'm unable to overcome this last error:
Error 1 error C2440: 'initializing' : cannot convert from 'double' to 'Time' linearfit.cpp 67
Has anybody got any experience with this?
Thanks!
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; };