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;
}
devrait marcher, mais je ne sais pas si c'est une bonne idée : on copie des tableaux par valeur, et surtout, ça ne dit pas ce que ça fait.
En fait, qu'est-ce qu'il veut faire : transformer des char en int. Et comme par hazard, il y a une fonction dans algorithme qui s'appelle transform...
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
kanze
Fabien LE LEZ wrote:
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.
Dans la norme, « structure » et « union » sont des types de classes -- toutes les structures et toutes les unions sont des classes, mais l'inverse n'est pas vrai.
Dans le cas d'union, la distinction a un sens ; une union se distingue des autres classes d'une manière significative. Dans le cas de structure, c'est plus discutable. N'empèche qu'on a (§9/4) : "A structure is a class defined with the class-key struct;" et "A union is a class defined with the class-key union".
Note bien le mot « defined » dans les deux cas. Si j'écris :
class Toto ; struct Titi ; union Tata ;
je n'ai rien défini, et pour l'instant, on a trois classes, dont on ne sait pas si elles sont des structures ou des unions. On peut très bien faire par la suite :
union Toto { } ; class Titi { } ; struct Tata { } ;
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Fabien LE LEZ wrote:
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.
Dans la norme, « structure » et « union » sont des types de
classes -- toutes les structures et toutes les unions sont des
classes, mais l'inverse n'est pas vrai.
Dans le cas d'union, la distinction a un sens ; une union se
distingue des autres classes d'une manière significative. Dans
le cas de structure, c'est plus discutable. N'empèche qu'on a
(§9/4) : "A structure is a class defined with the class-key
struct;" et "A union is a class defined with the class-key
union".
Note bien le mot « defined » dans les deux cas. Si j'écris :
class Toto ;
struct Titi ;
union Tata ;
je n'ai rien défini, et pour l'instant, on a trois classes, dont
on ne sait pas si elles sont des structures ou des unions. On
peut très bien faire par la suite :
union Toto { } ;
class Titi { } ;
struct Tata { } ;
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
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.
Dans la norme, « structure » et « union » sont des types de classes -- toutes les structures et toutes les unions sont des classes, mais l'inverse n'est pas vrai.
Dans le cas d'union, la distinction a un sens ; une union se distingue des autres classes d'une manière significative. Dans le cas de structure, c'est plus discutable. N'empèche qu'on a (§9/4) : "A structure is a class defined with the class-key struct;" et "A union is a class defined with the class-key union".
Note bien le mot « defined » dans les deux cas. Si j'écris :
class Toto ; struct Titi ; union Tata ;
je n'ai rien défini, et pour l'instant, on a trois classes, dont on ne sait pas si elles sont des structures ou des unions. On peut très bien faire par la suite :
union Toto { } ; class Titi { } ; struct Tata { } ;
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
kanze
wrote:
La différence entre une classe et une structure est l'endroit où elles sont stockées ? je me trompe ?
Oui.
Pour commencer, le C++ a des types de classe. Il n'y a pas de type « structure », ni, en fait, « union ». Dans les déclarations, les trois mots clé ont strictement la même signification.
On appelle « structure » une classe dont la définition utilise le mot clé « struct ». La *seule* différence par rapport à une classe définie par le mot clé « class », c'est que les declarations qui précèdent la première spécification d'accès sont publiques, et non privées. Cette différence vaut aussi dans le cas d'union, mais une union comporte d'autres différences (plus importantes) aussi.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
alexandre.jordan@gmail.com wrote:
La différence entre une classe et une structure est l'endroit
où elles sont stockées ? je me trompe ?
Oui.
Pour commencer, le C++ a des types de classe. Il n'y a pas de
type « structure », ni, en fait, « union ». Dans les
déclarations, les trois mots clé ont strictement la même
signification.
On appelle « structure » une classe dont la définition utilise
le mot clé « struct ». La *seule* différence par rapport à une
classe définie par le mot clé « class », c'est que les
declarations qui précèdent la première spécification d'accès
sont publiques, et non privées. Cette différence vaut aussi dans
le cas d'union, mais une union comporte d'autres différences
(plus importantes) aussi.
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
La différence entre une classe et une structure est l'endroit où elles sont stockées ? je me trompe ?
Oui.
Pour commencer, le C++ a des types de classe. Il n'y a pas de type « structure », ni, en fait, « union ». Dans les déclarations, les trois mots clé ont strictement la même signification.
On appelle « structure » une classe dont la définition utilise le mot clé « struct ». La *seule* différence par rapport à une classe définie par le mot clé « class », c'est que les declarations qui précèdent la première spécification d'accès sont publiques, et non privées. Cette différence vaut aussi dans le cas d'union, mais une union comporte d'autres différences (plus importantes) aussi.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
kanze
Franck Branjonneau wrote:
"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 {};
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 {};
Ici, le mot clé struct est illégal. Mais le mot clé class n'introduit pas une classe non plus ; ce n'est ni une définition, ni une déclaration.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Gabriel Dos Reis
"kanze" writes:
| wrote: | > La différence entre une classe et une structure est l'endroit | > où elles sont stockées ? je me trompe ? | | Oui. | | Pour commencer, le C++ a des types de classe. Il n'y a pas de | type « structure », ni, en fait, « union ». Dans les | déclarations, les trois mots clé ont strictement la même | signification.
union U; // ... struct U { }; int main() { U u; }
jk.C:3: error: 'struct' tag used in naming 'union U'
-- Gaby
"kanze" <kanze@gabi-soft.fr> writes:
| alexandre.jordan@gmail.com wrote:
| > La différence entre une classe et une structure est l'endroit
| > où elles sont stockées ? je me trompe ?
|
| Oui.
|
| Pour commencer, le C++ a des types de classe. Il n'y a pas de
| type « structure », ni, en fait, « union ». Dans les
| déclarations, les trois mots clé ont strictement la même
| signification.
union U;
// ...
struct U { };
int main()
{
U u;
}
jk.C:3: error: 'struct' tag used in naming 'union U'
| wrote: | > La différence entre une classe et une structure est l'endroit | > où elles sont stockées ? je me trompe ? | | Oui. | | Pour commencer, le C++ a des types de classe. Il n'y a pas de | type « structure », ni, en fait, « union ». Dans les | déclarations, les trois mots clé ont strictement la même | signification.
union U; // ... struct U { }; int main() { U u; }
jk.C:3: error: 'struct' tag used in naming 'union U'