<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
Bonjour,
<p>Je cherche à déclarer un tableau d'une classe Image en
connaissant sa taille.
<p>J'ai testé : Image *images[] = new Images * [nbImages]
;
<br>et autres combinaisons, je ne trouve pas comment déclarer correctement
<p>Quelqu'un peut-il m'aider? D'avance merci
<pre>--
Fanny</pre>
</html>
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
amerio
Je cherche à déclarer un tableau d'une classe Image en connaissant sa taille. J'ai testé : Image *images[] = new Images * [nbImages] ; et autres combinaisons, je ne trouve pas comment déclarer correctement Quelqu'un peut-il m'aider? D'avance merci
Je suppose que tu veux un tableau de pointeurs sur des images, et pas un tableau d'images directement...
Style C :
Image **images = new Image*[nbImages]; images[0] = new Image; .... delete images[0]; ... delete[] images; // ne pas oublier les crochets !!
Style C++ :
std::vector<Image*> images; images.push_back( new Image ); ... while (!images.empty()) { delete images.back(); images.pop_back(); } ... images.clear();
En C, si tu voulais un tableau d'image directement, ca serait : Image *images = new Image[nbImages];
Je cherche à déclarer un tableau d'une classe Image en connaissant sa taille.
J'ai testé : Image *images[] = new Images * [nbImages] ;
et autres combinaisons, je ne trouve pas comment déclarer correctement
Quelqu'un peut-il m'aider? D'avance merci
Je suppose que tu veux un tableau de pointeurs sur des images, et pas un tableau d'images
directement...
Style C :
Image **images = new Image*[nbImages];
images[0] = new Image;
....
delete images[0];
...
delete[] images; // ne pas oublier les crochets !!
Style C++ :
std::vector<Image*> images;
images.push_back( new Image );
...
while (!images.empty())
{
delete images.back();
images.pop_back();
}
...
images.clear();
En C, si tu voulais un tableau d'image directement, ca serait :
Image *images = new Image[nbImages];
Je cherche à déclarer un tableau d'une classe Image en connaissant sa taille. J'ai testé : Image *images[] = new Images * [nbImages] ; et autres combinaisons, je ne trouve pas comment déclarer correctement Quelqu'un peut-il m'aider? D'avance merci
Je suppose que tu veux un tableau de pointeurs sur des images, et pas un tableau d'images directement...
Style C :
Image **images = new Image*[nbImages]; images[0] = new Image; .... delete images[0]; ... delete[] images; // ne pas oublier les crochets !!
Style C++ :
std::vector<Image*> images; images.push_back( new Image ); ... while (!images.empty()) { delete images.back(); images.pop_back(); } ... images.clear();
En C, si tu voulais un tableau d'image directement, ca serait : Image *images = new Image[nbImages];
Anthony Fleury
Bonjour, Je cherche à déclarer un tableau d'une classe Image en connaissant sa taille.
J'ai testé : Image *images[] = new Images * [nbImages] ; et autres combinaisons, je ne trouve pas comment déclarer correctement Quelqu'un peut-il m'aider? D'avance merci
Si tu veux un tableau d'images, il faut faire tout simplement Image *images = new Image[nbImages]; (Attention dans ton exemple tu as mélangé Images et Image...)
puis un delete[] images pour le libérer.
Seulement c'est un tableau "à la C". Le C++ t'offre dans la STL vector :
#include <vector>
... std::vector<Image> images(nbImages); ...
-- Anthony
Bonjour,
Je cherche à déclarer un tableau d'une classe Image en connaissant sa
taille.
J'ai testé : Image *images[] = new Images * [nbImages] ;
et autres combinaisons, je ne trouve pas comment déclarer correctement
Quelqu'un peut-il m'aider? D'avance merci
Si tu veux un tableau d'images, il faut faire tout simplement
Image *images = new Image[nbImages];
(Attention dans ton exemple tu as mélangé Images et Image...)
puis un delete[] images pour le libérer.
Seulement c'est un tableau "à la C".
Le C++ t'offre dans la STL vector :
Bonjour, Je cherche à déclarer un tableau d'une classe Image en connaissant sa taille.
J'ai testé : Image *images[] = new Images * [nbImages] ; et autres combinaisons, je ne trouve pas comment déclarer correctement Quelqu'un peut-il m'aider? D'avance merci
Si tu veux un tableau d'images, il faut faire tout simplement Image *images = new Image[nbImages]; (Attention dans ton exemple tu as mélangé Images et Image...)
puis un delete[] images pour le libérer.
Seulement c'est un tableau "à la C". Le C++ t'offre dans la STL vector :
#include <vector>
... std::vector<Image> images(nbImages); ...
-- Anthony
Samuel Krempp
le Sunday 05 October 2003 16:47, écrivit :
Je suppose que tu veux un tableau de pointeurs sur des images, et pas un tableau d'images directement...
C'est une supposition n'est pas forcément appropriée, il y a pas mal de classes d'images qui sont en fait des handles, par exemple celle de Magick++ (qui se base sur un pointeur avec comptage de référence) Et si la classe Image a effectivement une sémantique de valeur (et engendre donc de grosses copies effectuées à chaque copie d'objet), pquoi pas utiliser des pointeurs intelligents plutot que des pointeurs crus ?
Style C++ :
std::vector<Image*> images; images.push_back( new Image ); ... while (!images.empty()) { delete images.back(); images.pop_back(); } ... images.clear();
Style C++ avec smart pointers : { typedef boost::shared_ptr<Image> ImagePtr; // www.boost.org std::vector<ImagePtr> images; images.push_back(ImagePtr(new Image) ); ... }
l'avantage saute aux yeux : on peut laisser le destructeur du vector (et ceux des shared_ptr) s'occupper eux-même de désallouer ce qu'il faut quand il faut.
-- Sam
le Sunday 05 October 2003 16:47, amerio@hotmail.com écrivit :
Je suppose que tu veux un tableau de pointeurs sur des images, et pas un
tableau d'images directement...
C'est une supposition n'est pas forcément appropriée, il y a pas mal de
classes d'images qui sont en fait des handles, par exemple celle de
Magick++ (qui se base sur un pointeur avec comptage de référence)
Et si la classe Image a effectivement une sémantique de valeur (et engendre
donc de grosses copies effectuées à chaque copie d'objet), pquoi pas
utiliser des pointeurs intelligents plutot que des pointeurs crus ?
Style C++ :
std::vector<Image*> images;
images.push_back( new Image );
...
while (!images.empty())
{
delete images.back();
images.pop_back();
}
...
images.clear();
Style C++ avec smart pointers :
{
typedef boost::shared_ptr<Image> ImagePtr; // www.boost.org
std::vector<ImagePtr> images;
images.push_back(ImagePtr(new Image) );
...
}
l'avantage saute aux yeux : on peut laisser le destructeur du vector (et
ceux des shared_ptr) s'occupper eux-même de désallouer ce qu'il faut quand
il faut.
Je suppose que tu veux un tableau de pointeurs sur des images, et pas un tableau d'images directement...
C'est une supposition n'est pas forcément appropriée, il y a pas mal de classes d'images qui sont en fait des handles, par exemple celle de Magick++ (qui se base sur un pointeur avec comptage de référence) Et si la classe Image a effectivement une sémantique de valeur (et engendre donc de grosses copies effectuées à chaque copie d'objet), pquoi pas utiliser des pointeurs intelligents plutot que des pointeurs crus ?
Style C++ :
std::vector<Image*> images; images.push_back( new Image ); ... while (!images.empty()) { delete images.back(); images.pop_back(); } ... images.clear();
Style C++ avec smart pointers : { typedef boost::shared_ptr<Image> ImagePtr; // www.boost.org std::vector<ImagePtr> images; images.push_back(ImagePtr(new Image) ); ... }
l'avantage saute aux yeux : on peut laisser le destructeur du vector (et ceux des shared_ptr) s'occupper eux-même de désallouer ce qu'il faut quand il faut.
<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> <html> fanny Chevalier wrote: <blockquote TYPE=CITE>Bonjour, <p>Je cherche à déclarer un tableau d'une classe Image en connaissant sa taille. <p>J'ai testé : Image *images[] = new Images * [nbImages] ; <br>et autres combinaisons, je ne trouve pas comment déclarer correctement <p>Quelqu'un peut-il m'aider? D'avance merci <pre>-- Fanny</pre> </blockquote>
<p><br>C'etait bien un tableau de tableau d'images. Merci pour vos conseils, problème résolu. <pre>-- Fanny
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
fanny Chevalier wrote:
<blockquote TYPE=CITE>Bonjour,
<p>Je cherche à déclarer un tableau d'une classe Image en
connaissant sa taille.
<p>J'ai testé : Image *images[] = new Images * [nbImages]
;
<br>et autres combinaisons, je ne trouve pas comment déclarer correctement
<p>Quelqu'un peut-il m'aider? D'avance merci
<pre>--
Fanny</pre>
</blockquote>
<p><br>C'etait bien un tableau de tableau d'images. Merci pour vos conseils,
problème résolu.
<pre>--
Fanny
<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> <html> fanny Chevalier wrote: <blockquote TYPE=CITE>Bonjour, <p>Je cherche à déclarer un tableau d'une classe Image en connaissant sa taille. <p>J'ai testé : Image *images[] = new Images * [nbImages] ; <br>et autres combinaisons, je ne trouve pas comment déclarer correctement <p>Quelqu'un peut-il m'aider? D'avance merci <pre>-- Fanny</pre> </blockquote>
<p><br>C'etait bien un tableau de tableau d'images. Merci pour vos conseils, problème résolu. <pre>-- Fanny