Des warning des warningssss

Résolu
wismerhill__ Messages postés 88 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 26 juillet 2007 - 18 juil. 2006 à 09:58
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 - 18 juil. 2006 à 19:45
Bonjour,
J'ai qques menus problèmes et une interogation...

1. je recupére comme warning :
c:\Documents and Settings\umansky\My Documents\Visual Studio Projects\ArrayString\Portfolio.cpp(209): warning C4541: 'dynamic_cast' used on polymorphic type 'Asset' with /GR-; unpredictable behavior may result

ceci après un dynamic cast qui me cast un objet de ma classe mere en objet de ma classe fille, comment puis je faire comprendre au compilo que "je sais ce que je fais" (enfin je crois :))

2.utilisant le STL et le type std::vector<double> je consomme pas mal de boucles du genre
for(unsigned int i =0; i< monvecteur.size(); i++)
sachant que monvecteur.size() sort du double, ce qui d'ailleurs est bizarre car je ne vois pas comment une taille de vecteur pourrait etre un nombre rationnel (enfin non entier positif), si je caste en (long) (monvecteur.size()) il me dit que je met du double dans un long !!!

Comment puis retirer ce warning qui m'abime les yeux (peut etre en mettant un fonction valeur entiere mais bon c'est pas tres beau)

wis : in tartiflette I trust (like the others)

6 réponses

wismerhill__ Messages postés 88 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 26 juillet 2007
18 juil. 2006 à 14:27
Super turnerom, je vais lire la doc...
Concretement quels sont les avantages ???

wis : in tartiflette I trust (like the others)
3
turnerom Messages postés 492 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 12 janvier 2012 1
18 juil. 2006 à 10:30
Salut,

pour ton premier warning, je ne sais pas, mais pour le 2eme, de toute
facon la fonction size de vector renvoi un size_t (unsigned int)

extrait de la doc de la STL :
<tt>size_type size() const</tt>, Container, Returns the size of the <tt>vector</tt>.


Et puis, tu n'as jamais besoin de faire des boucles de ce style, utilise les iterators plutot !

TuRn3r
0
wismerhill__ Messages postés 88 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 26 juillet 2007
18 juil. 2006 à 12:13
Des iterators ??
quel serait le genre de code ??
c'est quoi ??

wis : in tartiflette I trust (like the others)
0
turnerom Messages postés 492 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 12 janvier 2012 1
18 juil. 2006 à 13:02
for (vector<double>::iterator it = v.begin(); it!=v.end(); ++it)
{
   cout << *it << endl;
}

Pour voir la doc :
http://www.sgi.com/tech/stl/Iterators.html

TuRn3r
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 5
18 juil. 2006 à 19:05
Les avantages ne sont valables que dans un context plus abstrait ou le
type de conteneur (vector, list, deque...) n'est pas fixé, on peut
parcourir n'importe quel type de sequence avec les itérateurs.

Dans ce cas tu peux garder un parcours type tableau :


for(vector<double>::size_type i = 0; i < v.size(); i++ )

{

    cout << v[i] << '\n';

}
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
18 juil. 2006 à 19:45
Perso, pour les vecteurs, l'intéret des itérateurs restent limité pour balayer le vecteur en entier.
0
Rejoignez-nous