Déterminer dynamiquement le type d'un objet pointé
feanor11
Messages postés28Date d'inscriptionmercredi 6 octobre 2004StatutMembreDernière intervention 1 septembre 2005
-
19 juin 2005 à 17:39
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 2010
-
19 juin 2005 à 18:46
Sachant qu'un pointeur est capable de pointer sur un objet d'un type dérivé à son type respectif (si A est dérivée de B, A* peut pointer sur un objet de type B).
Est-il possible alors de déterminter dynamiquement le type réel de l'objet pointé ? (de l'obtenir sous forme type_info)
De telle sorte que si l'objet pointé est en réalité de type dérivé du
type du pointeur, on puisse obtenir son vrai type et non pas le type du
pointeur
A voir également:
Déterminer dynamiquement le type d'un objet pointé
xboxut
Messages postés172Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention27 novembre 20091 19 juin 2005 à 18:20
hehe pas dur tu assigne une var de reconnaissance ;)
exemple:
class a
{
public:
char classID;
a();
}
dans ton constructeur tu assigne une valeur a classID.
kan tu cree une classe derivée tu met dans son constructeur une valeur de classID differente comme ca chaque type d objet aura une variable differente.
apres pour determiner le type d objet bin tu test la var classID
C est une bonne methode mais il parait que c crade ;)
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 19 juin 2005 à 18:37
salut,
[auteurdetail.aspx?ID=19734 vecchio56]> ton exemple
ne marche pas car ta classe ne contient aucune fonction virtuelle (et
pas de table de fonction virtuelle et de typage dynamique sans ca ...)
#include
using namespace std;
class A{
public:
virtual ~A() {};
};
class B: public A{};
int main()
{
A* obj = new B();
cout << typeid(*obj).name() << endl;
}
il s'affiche class B.
a+
Vous n’avez pas trouvé la réponse que vous recherchez ?