J'ai construit une petite classe représentant un nombre décimal, appelé complexe. Je veux être en mesure de le jeter à doubler, alors voici mon codetypecasts surchargées ne fonctionnent pas
complex.h
public:
operator double();
Complext.cpp
Complex::operator double()
{
return _num;
}
_num est un champ de type double bien sûr
qui semble être d'accord. Le problème est dans une autre classe où j'essaie de lancer un objet complexe en double. C'est ma fonction:
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;
}
qui se traduit par invalid cast from type ‘const Complex’ to type ‘double’
Je n'ai aucune idée pourquoi cela arrive. Des idées? Merci!