OVH Cloud OVH Cloud

Tableaux et stl

42 réponses
Avatar
JM
Bonjour

Toujours plongé dans la stl, j'ai quelques questions (Pas évident de
trouver un tutoriel à la fois clair et compréhensible)

0) Où peut-on trouver un bon tutoriel (Français de préférence, mais à
défaut, l'anglais me conviendra)

1)
J'ai une classe :
class CA
{public
CA() { initialisations divers et variées; }
~CA();

void f();
}

vector<CA> tableau;

tableau.size(10);

Le constructeur est-il bien appelé pour les 10 éléments?
Je pense que oui mais le doute est en moi.

2) Toujours avec la classe précédente.

Je veux ajouter un élément à la fin de mon tableau.
A priori, tableau.push_back ne peut-être utilisé sans passer de référence.

J'ai essayé deux trucs :
a) tableau.push_back(CA());

Vu que cela crée un objet temporaire sur la pile, cela ne me
convient pas trop.

b) tableau.resize(tableau.size()+1)

Cela me parait un peu bourrin, mais c'est le seul truc que j'ai pu
trouver dans les tutoriels que j'ai vus.


y'a-t-il d'autres possibilités, sachant que toutes les initialisations
dont j'ai besoin sont faites dans le constructeur?

3) Jusqu'à présent, style C oblige, j'utilisais toujours une variable
pour conserver la taille de mon tableau.

Je suppose que cette manière de faire est obsolète avec size() ?

Merci d'avance à ceux qui répondront à ces questions certainement niveau
0, mais j'avoue que cela m'aidera bien!

2 réponses

1 2 3 4 5
Avatar
kanze
Sylvain wrote:
kanze wrote on 21/09/2006 09:09:

(En passant : pourquoi est-ce que parler de l'« ownership »
d'un objet me semble tout à fait naturel en anglais, mais que
l'utilisation du mot « propriété » dans le même contexte en
français ne me semble pas juste ?)


ou encore "possède" vs "utilise".


Oui. Ce dont on a besoin, c'est en fait une famille de mots :
il y a le verbe, l'agent, le fait... Avec « possède », je ne
vois pas trop ce qui me servira d'agent : « possesseur » ne
me plaît pas outremesure.

Et avec la suggestion d'« utilise », tu as mis le doigt sur
une partie du problème. Historiquement, on parlait beaucoup
d'« ownership » par rapport à qui est responsable du delete ;
c'était un concepte très important pour éviter les fuites de
mémoire. Aujourd'hui, avec la disponabilité du collecteur de
Boehm, cet aspect a perdu beaucoup d'importance. En revanche,
avec les threads, des considérations de qui a droit d'accéder
quand se mettent en avant, et aujourd'hui, quand je parle
d'« ownership », c'est plus souvent dans ce sens-là (et
l'« owner » est souvent exprimé en termes de thread, et non
d'objet). Il y a donc en fait plusieurs conceptes en
considération.

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


Avatar
Loïc Joly


(En passant : pourquoi est-ce que parler de l'« ownership »
d'un objet me semble tout à fait naturel en anglais, mais que
l'utilisation du mot « propriété » dans le même contexte en
français ne me semble pas juste ?)


Peut-être parce qu'en français, propriété peux aussi dire "property" ?

J'utilise généralement possèder/possession

--
Loïc

1 2 3 4 5