OVH Cloud OVH Cloud

STL - for_each et Objet fonction

58 réponses
Avatar
fred
Bonjour,

l'id=E9e est assez simple. Comment puis je r=E9cup=E9rer une
variable/instance de type vector apr=E8s l'appel l'algorithm for_each.
Comme dans l'exemple. Je parcours une string. pour chaque car.
convertit en entier que je place dans un vector<int>.
Mais apr=E8s l'appel =E0 for_each comme puis je acc=E9der au vector ?

merci d'avance

Fr=E9d=E9ric

class ConvertCharToInt
{
vector<int> vFmt;
public:
void operator() (char c)
{
vFmt.push_back(atoi(c));
}
};

class CFmt
{
public :
string szFmt;
void GetStringFormat(const string a){ szFmt=3D a;};
void SplitFmt(){
std::for_each(szFmt.begin(),szFmt.end(),ConvertCharToInt());
};
};
main()
{
CFmt *obj;
obj=3D new CFmt;
obj->GetStringFormat("123456");
obj->SplitFmt();
delete obj;
}

10 réponses

1 2 3 4 5
Avatar
Fabien LE LEZ
On 22 Feb 2006 05:12:44 -0800, "fred" :

Pourquoi passer par une structure ?


Il n'y a pas de structure. "struct" introduit une classe dont les
membres et l'héritage sont publics par défaut.

Avatar
Michel Decima
"Fabien LE LEZ" a écrit dans le message de
news:
On 22 Feb 2006 05:12:44 -0800, "fred" :

Pourquoi passer par une structure ?


Il n'y a pas de structure. "struct" introduit une classe dont les
membres et l'héritage sont publics par défaut.


C'est juste. Mais d'un autre coté, il n'y a pas de classe, vu que
"class" introduit une structure dont les membres et l'héritage sont
privés par défaut.

(désolé, j'ai pas pu m'empécher ;)


Avatar
Franck Branjonneau
"fred" écrivait:

Peux tu m'éclaircir sur tes remarques..comme :

Quel est le problème avec atoi ???


Essaie de compiler int main() { char c; atoi(c); }...

D'où vient atoi ?

Quelle est sa signature ?
Quelle est celle de std::atoi ?

"Étonnant un «getter» non constant qui fait une assignation..."
C'est quoi un getter ?


Une fonction membre qui lit -- son nom commence par get. Ce que tu as
écrit est un setter -- son nom commence par set. Enfin , c'est la
convention usuelle.

j'ai essayé avec une instance de ConvertCharToInt mais ca ne marche
pas.


Oui, j'ai fait la même erreur que Fabien diagnostiquée par Michel.

--
Franck Branjonneau

Avatar
fred
Bien merci à tous... complique c++ quand même mais interessant!!!
Avatar
Fabien LE LEZ
On Wed, 22 Feb 2006 14:47:59 +0100, "Michel Decima" :

C'est juste. Mais d'un autre coté, il n'y a pas de classe, vu que
"class" introduit une structure dont les membres et l'héritage sont
privés par défaut.


Pas vraiment. La notion de "structure" semble assez floue :
apparemment elle est utilisée dans la norme, mais ça ressemble plus à
un oubli qu'à une volonté de piquer ce mot au langage C.
La notion de classe, en revanche, est une notion fondamentale en C++
et dans les autres langages OO.

Avatar
fred
merci beaucoup pour tes remarques Franck. C'est vrai. La méthode va
devenir Set...
Avatar
Michel Decima
"Fabien LE LEZ" a écrit dans le message de
news:
On Wed, 22 Feb 2006 14:47:59 +0100, "Michel Decima" :

Pas vraiment. La notion de "structure" semble assez floue :
apparemment elle est utilisée dans la norme, mais ça ressemble plus à
un oubli qu'à une volonté de piquer ce mot au langage C.
La notion de classe, en revanche, est une notion fondamentale en C++
et dans les autres langages OO.


On est bien d'accord, quand il s'agit de la _notion_ de classe. Maintenant,
en
ce qui concerne les mots cles class et struct...

Avatar
Franck Branjonneau
"Michel Decima" écrivait:

il n'y a pas de classe, vu que "class" introduit une structure dont
les membres et l'héritage sont privés par défaut.

(désolé, j'ai pas pu m'empécher ;)


Moi non plus ;-)

template< class T > struct S {};
template< struct T > class S {};

--
Franck Branjonneau

Avatar
alexandre.jordan
La différence entre une classe et une structure est l'endroit où
elles sont stockées ? je me trompe ?

Merci pour ce petit renseignement.

--
Alexandre Jordan
Avatar
Jean-Marc Bourguet
"" writes:

La différence entre une classe et une structure est l'endroit où
elles sont stockées ? je me trompe ?


Non, la seule difference entre struct et class, c'est l'accessibilite
par defaut des membres et des ancetres.

A+

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org

1 2 3 4 5