Bonjour,
Je me retrouve dans une impasse suite à la recherche d'un moyen d’empêcher un comportement ennuyant des listes d'objets (je n'ai rien trouvé de concluant sur google mais mes termes de recherches sont peu être incorrect)
Mon problème est plutôt simple en soit:
Je crée une liste d'objet IP_PACKET (ma classe mère) cependant ceux ci sont en vérité des objets de classe fille de IP_PACKET qui remplace (override) la méthode getContent() de IP_PACKET
ce qui se passe dans le code ci-dessous est qu'uniquement la méthode getContent de IP_PACKET est appelé et non celle d'une des classes filles.
Ma question est du coup est il possible d'appeler ma méthode getContent en utilisant ma list de IP_PACKET tout en utilisant uniquement les méthodes des classes filles, ou est ce qu'il faut obligatoirement que je teste mon objet pour obtenir son type et le re-caster dans son type original puis appelé sa méthode getContent?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 stream=(char*) malloc(packets.size()*BUFFERSIZE); list<IP_PACKET>::iterator i; printf("packing all data!\n"); for(i=packets.begin();i!=packets.end();++i) { printf("'%s'",(*i).getContent()); strcat(stream,(*i).getContent()); }
Merci d'avance
P.S je me suis peut être trompé de section ne sachant pas si ma question allait dans les généralité du langage ou plus dans la STL
Partager