Bonjour,

J'ai quelques bases (qui datent de mes études) en Java et je me lance dans le C++.
De mémoire, il est possible de faire ceci en Java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
ClasseDeBase toto = ClasseDerivee();
ou
ClasseDerivee toto = ClasseDeBase();
et je cherche donc à faire la même chose en C++ (si c'est possible).

J'ai une fonction qui analyse une string qui contient une trame GPS et renvoie un objet contenant les informations adéquates.
Le problème, c'est qu'il existe différents types de trame et que le fonction doit renvoyer le bon objet en fonction du type de trame.

Cela ressemblerais à ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
GPSSentence GPSSentenceAnalyser::analyse(string gpsSentence) const{
    string gpsSentenceType = gpsSentence.substr(1, 5);
 
    if (gpsSentenceType=="GPGAA"){
        GPSSentence result = GPGAA();
        result.getNbField();
 
    }
    if (gpsSentenceType=="GPGSA"){
        GPSSentence result = GPGSA();
        result.getNbField();
    }
    if (gpsSentenceType=="GPGSV"){
        GPSSentence result = GPGSV();
        result.getNbField();
    }
    if (gpsSentenceType=="GPGLL"){
        GPSSentence result = GPGLL();
        result.getNbField();
    }
 
    return result;
 
}
Comment obtenir ce genre de comportement ?
Cela est-il bien du polymorphisme ?

Merci d'avance pour vos réponses.