[C++] Surcharge d'opérateur de conv. de type.
Résolu
Bonjour,
J'ai besoin d'un peu d'aide pour surcharger des opérateur sun peu spéciaux, les opérateur de conversion de type: les opérateurs int, float, ect...
Par exemple je voudrais donner un sens à:
int n;
MaClasse c;
n = (int)c; //Conversion explicite de type avec l'opérateur int
Merci de votre aide !
J'ai besoin d'un peu d'aide pour surcharger des opérateur sun peu spéciaux, les opérateur de conversion de type: les opérateurs int, float, ect...
Par exemple je voudrais donner un sens à:
int n;
MaClasse c;
n = (int)c; //Conversion explicite de type avec l'opérateur int
Merci de votre aide !
A voir également:
- [C++] Surcharge d'opérateur de conv. de type.
- Opérateur de réseau mobile - Guide
- 0644 quel opérateur ✓ - Forum Mobile
- 0668 quel opérateur ✓ - Forum Opérateurs & Réseaux mobiles
- 0466 quel opérateur - Forum Mobile
- Connaitre l'opérateur d'un portable inconnu ? ✓ - Forum Mobile
1 réponse
cf exemple :
http://tbrouard.univ-tours.fr/t/article.php3?id_article=65
Bonne chance
http://tbrouard.univ-tours.fr/t/article.php3?id_article=65
class CFract {
int num;
int den;
public :
// définition des constructeurs
// définition des cast
operator double() {
return (double)num /(double)den;
}
};
void main() {
CFract a(5,6);
double i = double(a); // autorisé en C++
double j = (double)a; // autorisé en C et en C++
}
Bonne chance
Je pense pouvoir résoudre mon problème maintenant !
Merci.
++
Dans ce message le commentaire que tu relève signifique que la ligne 16 est syntaxiquement correcte.
Ce n'est pas un appel de classe, c'est un cast (et même un static cast pour être exact). A noter que d'ailleurs, en C++ les casts se font plutôt au travers des opérateurs suivants :
http://openclassrooms.com/courses/c-les-conversions-de-types