C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Vecteurs et objets Dynamiques

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
Jérôme
Guest





PostPosted: Wed Jan 25, 2006 6:31 pm    Post subject: Vecteurs et objets Dynamiques Reply with quote



Bonjour à tous,

Peut-on utiliser des vecteurs contenant des objets dont certaines
parties sont allouées Dynamiquement, cad dont on ne peut connaître à
l'avance la place occupée en mémoire ?

J'ai un cas qui passe en utilisant un vecteur d'objets dynamiques
(peut-être avec de la chance, qui sait), et un cas qui ne passe pas.

Voici celui qui ne passe pas, où je fais un vecteur d'objets Rubrique
(j'épure pour alléger) :

***

typedef vector<Rubrique> vecteurrubriques; // définition d'un type
de vecteurs pour les rubriques

class ListeRubrique {

protected : // seules les classes dérivées
pourront utiliser ces champs
...
vecteurrubriques rubrique; // Liste des rubriques, un
tableau d'objets "Rubrique"
...
public :
...
};

***
pour info, ma classe Rubrique :

typedef vector<Dynachar> vecteurdynachar; // définition d'un type
de vecteur de Dynachar

class Rubrique {

protected : //seules les classes dérivées
pourront utiliser ces champs
...
vecteurdynachar lignerubrique; // Contenu des lignes, un tableau de
Dynachar
...
public :
Rubrique(); // constructeur vide
Rubrique(Dynachar); // constructeur à partir d'un
Dynachar qui n'englobe que la rubrique
~Rubrique(){}; // destructeur vide (le vecteur
sera chargé de désallouer les lignes)
...
};

***
Et pour info, ma classe Dynachar est une classe de chaîne dynamique, un
peu comme String, une liste simplement chaînée, qui marche très bien par
ailleurs, y compris quand je fais un vecteur de Dynachar.

Dans mon constructeur de ListeRubriques, je fais un :

rubrique.resize(nbrubriques)

et j'obtiens un core dumped précisément à cette opération. Est-ce parce
que j'emboîte 2 vecteurs quand je fais un vecteur de Rubrique qui, dans
Rubrique, contient un vecteur de Dynachar ?

Jérôme.
Back to top
Falk Tannhäuser
Guest





PostPosted: Wed Jan 25, 2006 9:43 pm    Post subject: Re: Vecteurs et objets Dynamiques Reply with quote



Jérôme wrote:
Quote:
Et pour info, ma classe Dynachar est une classe de chaîne dynamique, un
peu comme String, une liste simplement chaînée, qui marche très bien par
ailleurs, y compris quand je fais un vecteur de Dynachar.

Dans mon constructeur de ListeRubriques, je fais un :

rubrique.resize(nbrubriques)

et j'obtiens un core dumped précisément à cette opération. Est-ce parce
que j'emboîte 2 vecteurs quand je fais un vecteur de Rubrique qui, dans
Rubrique, contient un vecteur de Dynachar ?

La classe Dynachar possède-t-elle un constructeur de copie et un
opérateur d'affectation qui marchent correctement ?

Back to top
Jérôme
Guest





PostPosted: Thu Jan 26, 2006 9:11 am    Post subject: Re: Vecteurs et objets Dynamiques Reply with quote





Quote:
Et pour info, ma classe Dynachar est une classe de chaîne dynamique,
un peu comme String, une liste simplement chaînée, qui marche très
bien par ailleurs, y compris quand je fais un vecteur de Dynachar.

Dans mon constructeur de ListeRubriques, je fais un :

rubrique.resize(nbrubriques)

et j'obtiens un core dumped précisément à cette opération. Est-ce
parce que j'emboîte 2 vecteurs quand je fais un vecteur de Rubrique
qui, dans Rubrique, contient un vecteur de Dynachar ?


La classe Dynachar possède-t-elle un constructeur de copie et un
opérateur d'affectation qui marchent correctement ?

Oui, et notamment un constructeur par recopie, elle a même un opérateur
= surchargé, enfin tout ce qui va bien, elle marche depuis des années,
et elle est aussi sûre que la classe String. J'avais justement bien fait
attention aux constructeurs et aux destructeurs.

Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.