Des warning des warningssss [Résolu]

Signaler
Messages postés
88
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
26 juillet 2007
-
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
-
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

Messages postés
88
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
26 juillet 2007

Super turnerom, je vais lire la doc...
Concretement quels sont les avantages ???

wis : in tartiflette I trust (like the others)
Messages postés
492
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2012
1
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
Messages postés
88
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
26 juillet 2007

Des iterators ??
quel serait le genre de code ??
c'est quoi ??

wis : in tartiflette I trust (like the others)
Messages postés
492
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2012
1
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
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
3
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';

}
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Perso, pour les vecteurs, l'intéret des itérateurs restent limité pour balayer le vecteur en entier.