Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michel Michaud
Dans news:,
class A { A(int i, int j) {} };
// Pour déclarer un objet A, je doit utiliser le seul Ctor proposé : A a(3, 2);
// Si je veux un tableau de A, ça se corse : A a[2] = { A(3, 2), A(3, 2) };
//maintenant, je veut une classe B, qui contient un tableau de A : class B { A a[2];
B(); };
//Comment j'écrit le CTor de B ? B::B() : a ( A(3, 2), A(3, 2) ) { } //compile pas.... B::B() : a { A(3, 2), A(3, 2) } { } //compile pas.... B::B() : a={ A(3, 2), A(3, 2) } { } //compile pas....
Malheureusement (?), il n'y a pas de syntaxe pour le faire dans la liste d'initialisation. Tu dois le faire dans le code du constructeur, ce qui n'est possible que pour un tableau non const (ton cas ici). L'autre possibilité est de mettre le tableau ailleurs et d'y faire simplement référence d'une manière ou d'une autre dans ta classe, en particulier en le recopiant dans un std::vector.
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Dans news:20040220140447.645b64da.sn00py.2@laposte.net,
class A {
A(int i, int j) {}
};
// Pour déclarer un objet A, je doit utiliser le seul Ctor proposé :
A a(3, 2);
// Si je veux un tableau de A, ça se corse :
A a[2] = { A(3, 2), A(3, 2) };
//maintenant, je veut une classe B, qui contient un tableau de A :
class B {
A a[2];
B();
};
//Comment j'écrit le CTor de B ?
B::B() : a ( A(3, 2), A(3, 2) ) { } //compile pas....
B::B() : a { A(3, 2), A(3, 2) } { } //compile pas....
B::B() : a={ A(3, 2), A(3, 2) } { } //compile pas....
Malheureusement (?), il n'y a pas de syntaxe pour le faire
dans la liste d'initialisation. Tu dois le faire dans le code
du constructeur, ce qui n'est possible que pour un tableau
non const (ton cas ici). L'autre possibilité est de mettre
le tableau ailleurs et d'y faire simplement référence d'une
manière ou d'une autre dans ta classe, en particulier en le
recopiant dans un std::vector.
--
Michel Michaud mm@gdzid.com
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
// Pour déclarer un objet A, je doit utiliser le seul Ctor proposé : A a(3, 2);
// Si je veux un tableau de A, ça se corse : A a[2] = { A(3, 2), A(3, 2) };
//maintenant, je veut une classe B, qui contient un tableau de A : class B { A a[2];
B(); };
//Comment j'écrit le CTor de B ? B::B() : a ( A(3, 2), A(3, 2) ) { } //compile pas.... B::B() : a { A(3, 2), A(3, 2) } { } //compile pas.... B::B() : a={ A(3, 2), A(3, 2) } { } //compile pas....
Malheureusement (?), il n'y a pas de syntaxe pour le faire dans la liste d'initialisation. Tu dois le faire dans le code du constructeur, ce qui n'est possible que pour un tableau non const (ton cas ici). L'autre possibilité est de mettre le tableau ailleurs et d'y faire simplement référence d'une manière ou d'une autre dans ta classe, en particulier en le recopiant dans un std::vector.
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/