Ajouter un commentaire

fredericmazue

Quote:
J'ai mis l'énoncé dans le premier post.

Ah zut, j'avais pas vu le lien :oops:
En ce moment sur ce forum il y a tellement de questions qui sont des quarts de questions que j'ai généralisé. re - :oops:

C'est interessant comme énoncé, mais il y a déjà pas mal de boulot.

Mais je ne suis pas sûr de bien comprendre l'énoncé. Les classes Image2D et Matrice dont il est question, elles existent déjà ou bien tu dois les écrire aussi et ensuite les dériver pour écrire ta classe Image ?

Apparement oui puisque tu demandes une aide pour la classe Image2D.
Alors puisque tu sera jugé sur la qualité du code, dis de ma part à tes profs que la l'héritage mutiple ça ne parait pas pertinent. Il serait mieux que Matrice soit un membre d'image2D je pense. Surtout si tu dois écrire des constructeurs de copies. L''héritage multipe alourdit la question.

Bon, autre point. Tu es sous Unix. mais on ne parle pas de toolkit graphique pour afficher les images. C'est seulement un affichage en mode texte (surcharge de <<) si je comprends bien.

Pour ce qui est de charger l'image. Commence par écrire une classe simple avec seulement un constructeur et un destructeur.
Le constructeur reçoit le nom du fichier d'image et l'ouvre. Pour ça tu n'as qu'à faire un copier-coller partiel du code donné sur la page de GD
Bien sûr tu gères les erreurs. Pour une librairie bien conçue (tu seras évalué sur ce point si je comprends bien) le mieux est de lever des exceptions. Surtout dans un constructeur qui n'a pas de valeur de retour ;) Par exemple si le nom du fichier est pas bon.
Dans le destructeur tu veilles à libérer FILE*
Si tu gardes File* comme membre de ta classe... Ce que l'on peut critiquer car alors ça oblige quasiment à interdire le constructeur de copie ce qui serait dommage pour une librairie d'image
Donc autre approche. Dans le constructeur, tu charges l'image, tu mets les octets dans une zone mémoire et tu libères tout de suite le FILE* et dans le destructeur tu veilles à libérer la mémoire. Et dans le constructeur de copie tu veilles à allouer une nouvelle zone mémoire.

Comment comme ça, poste des bouts de code et sans doute des gens essaieront de t'aider à avancer. En tous cas moi j'aime bien cette énoncé, et puis ça change agréablement des c........ Java habituelles :)
Ca donne envie de t'aider :)

Je me permets une question. Tu es à quel niveau d'étude ?

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 W     W  K  K  FFFF  III  K  K 
W W K K F I K K
W W W KK FFF I KK
W W W K K F I K K
W W K K F III K K