Я построил небольшой класс, представляющий десятичное число, под названием Complex.Я хочу иметь возможность привести его к удвоению, поэтому вот мой код
Complex.h
public:
operator double();
Complext.cpp
Complex::operator double()
{
return _num;
}
_num это полетип double, конечно
Кажется, все в порядке.Проблема в другом классе, где я на самом деле пытаюсь преобразовать сложный объект в двойной.Это моя функция:
const RegMatrix& RegMatrix::operator *= (double num)
{
Complex factor(num);
for(int i=0; i<_numRow; i++)
{
for(int j=0; j<_numCol; j++)
{
Complex temp = _matrix[i][j];
_matrix[i][j] = (double) (temp * factor); //<---ERROR HERE
}
}
return *this;
}
Это приводит к invalid cast from type ‘const Complex’ to type ‘double’
Я понятия не имею, почему это происходит.Есть идеи?Спасибо!