Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[debutant]initialisation d'une vairiable d'instance

2 réponses
Avatar
pasde.bcausse.spam
bonsoir,

comment initialiser un tableau membre d'une classe.

ex : facon java

class maClass {

int tab[] = {12, 15, -2, 14, 0, -6};

.../...
};

de facon elegante.

--
Bruno Causse
http://perso.wanadoo.fr/othello

2 réponses

Avatar
fabrizio
Bruno Causse wrote:
bonsoir,

comment initialiser un tableau membre d'une classe.

ex : facon java
class maClass {
int tab[] = {12, 15, -2, 14, 0, -6};
};
de facon elegante.


Ben dans le constructeur de ladite classe.
Peut-être ai-je mal compris la question.

Fabrice

Avatar
kanze
fabrizio wrote:
Bruno Causse wrote:

comment initialiser un tableau membre d'une classe.

ex : facon java
class maClass {
int tab[] = {12, 15, -2, 14, 0, -6};
};
de facon elegante.


Ben dans le constructeur de ladite classe.


Même dans le constructeur, ce n'est pas vraiment simple et
élégant. On ne peut pas le faire au moyen des clauses
d'initialisation, comme pour tout autre membre.

En fait, dans ce cas-ci, c'est std::vector qui est plus
élégant. Mais même là, il faut déclarer un tableau à la C,
statique, avec les valeurs d'initialisation. Un peu du genre :

class MaClass
{
std::vector< int > tab ;
// ...
} ;


static int initTab[] = { 12, 15, -2, 14, 0, -6 } ;

MaClass::MaClass()
: tab( begin( initTab ), end( initTab ) )
// ...

(Avec les définitions habituelles de begin et d'end,
évidemment.)

--
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