question redefinition "operator ="
Bonjour,
Si on définit une classe
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
class nouveau_type
{
private:
int m_valeur;
public:
nouveau_type& operator=(nouveau_type const &val)
{
this->m_valeur=val;
return(*this);
}
}; |
Avec la redéfinition de l'opérateur= comme précédent, il est donc possible d'effectuer l'opération suivante:
nouveau_type A = 7; //équivalent a A.m_valeur = 7;
J'en arrive donc a ma question===>
est il possible de faire l'inverse? :aie:
cad redéfinir l'opérateur= "standard"(agissant sur les types int/float/short/etc)...de telle sorte que le compilateur comprenne que
(int = nouveau_type) est équivalent à (int = nouveau_type.m_valeur)
(je pense à une redéfinition comme pour l'opérateur std::operator<< :?)
Merci d'avance de vos idées!
(Pour l'instant j'utilise une fonction "to_float" qui me retourne la valeur, mais ca complique la prog et la lisibilité, c'est quand meme plus joli un "=" transparent!)