Pb de conception - classes abstraites [C++] - C++ - Programmation
Marsh Posté le 22-05-2003 à 12:59:13
skeye a écrit :
|
Ben ... Tu fais un appel concret à une fonction purement virtuelle, ca m'étonnerait que ca passe ...
Marsh Posté le 22-05-2003 à 13:01:07
theShOcKwAvE a écrit : |
bah alors on fait comment un truc de ce genre...ca existe pas?
J'ai beau regarder le cours de christian casteyde je vois qui ressemble à ca...
Marsh Posté le 22-05-2003 à 13:05:38
skeye a écrit : |
oups ... Autant pour moi, j'ai lu un peu vite ... Non, ta fonction n'est pas virtuelle pure !
Edit : (normalement, ca devrait passer, ca ....)
Marsh Posté le 22-05-2003 à 13:06:09
Citation : le compilateur me fait savoir qu'il ne connait pas de fonction de ce genre... |
tu peux balancer l'erreur qu'il te donne ?
Marsh Posté le 22-05-2003 à 13:13:44
theShOcKwAvE a écrit : |
Ca me rassure...
Marsh Posté le 22-05-2003 à 13:14:59
chrisbk a écrit :
|
|
Marsh Posté le 22-05-2003 à 13:16:53
skeye a écrit :
|
etrange ton souc
tu peux balancer le code entier de la fonction utilisant ce getval ? (enfin, entete surtout), la je vois pas trop
Marsh Posté le 22-05-2003 à 13:17:13
Ca m'intéresse, quand même, tout ça...Il y a des cours plus complets que celui de christian casteyde sur ce genre de pbs?
J'ai eu une illumination il y a quelques minutes, donc je suis de nouveau en train de tout repenser, mais je sais que mes connaissances sont parfois un peu floues dans ce domaine...
Marsh Posté le 22-05-2003 à 13:18:43
chrisbk a écrit : |
Code :
|
Ca suffit?
Marsh Posté le 22-05-2003 à 13:19:16
perso ton implementation me fait comme peur, principalement ton getVal(int x,int y). laisse tber le inline et passe cette fonction en virtuel, sinon ton calcul d'indice risque d'etre faussé (enfin vu comme je vois ca)
Marsh Posté le 22-05-2003 à 13:20:13
RAHHHHHHHHH
Code :
|
et la derivation (et me faite pas chier si c pas francais ) alors hein ??
Marsh Posté le 22-05-2003 à 13:20:54
chrisbk a écrit : perso ton implementation me fait comme peur, principalement ton getVal(int x,int y). laisse tber le inline et passe cette fonction en virtuel, sinon ton calcul d'indice risque d'etre faussé (enfin vu comme je vois ca) |
Je compte bien virer tout ca, de tte façon, puisque je change tout...
Mais il n'empêche que cette erreur m'interpelle!
Marsh Posté le 22-05-2003 à 13:21:26
chrisbk a écrit : RAHHHHHHHHH
|
Elle y est dans le vrai source...j'ai juste mal copié...
Marsh Posté le 22-05-2003 à 13:22:04
skeye a écrit : |
ben on est bien pour t'aider si tu nous file du faux source code tiens
Marsh Posté le 22-05-2003 à 13:22:59
chrisbk a écrit : |
j'édite, si tu veux...
Marsh Posté le 22-05-2003 à 13:23:51
skeye a écrit : |
ben balance un CC de la declaration de tes classes (en virant l'inutile) paske bon, c tordu ton erreur la
Marsh Posté le 22-05-2003 à 13:28:08
chrisbk a écrit : |
classe mère:
Code :
|
Classe fille:
Code :
|
Voilà, sans les trucs inutiles...
Marsh Posté le 22-05-2003 à 13:29:26
chrisbk a écrit : perso ton implementation me fait comme peur, principalement ton getVal(int x,int y). laisse tber le inline et passe cette fonction en virtuel, sinon ton calcul d'indice risque d'etre faussé (enfin vu comme je vois ca) |
+1 ... Parfois, je me demande si le compilo n'inline pas les fonctions un peu trop vite ... (exemple : ne jamais faire un pointeur sur une fonction inline ! le compilo, il ne voit pas ca et l'inline malgré tout !)
Marsh Posté le 22-05-2003 à 13:41:40
Finalement, je crois que je vais retourner à ma classe toute seule...
1 image =
* 1 tableau de BYTE
* Une taille en X et Y
* Les coordonnées du point en haut à gauche dans le tableau.
* les brols dont vous avez rien à f... mais quui peuvent me servir...
En fait ce type de fonctionnement pourra me faire économiser des recopies / allocations / désallocation de tableaux...Pour une image de départ je n'aurai qu'un tableau de BYTE (à moins d'avoir à y faire des traitements complexes), pi voilà...
Ca peut pas être une mauvaise chose de pas faire des recopies sur des images qui peuvent être des plan A0 scannés, à la base...
Marsh Posté le 22-05-2003 à 11:02:44
Et hop! Question du jour!
Voilà le pb qui se pose à moi ce matin:
Comme certains ont pu le remarquer, je développe depuis quelques semaines un outil manipulant des images, qui jusqu'alors n'utilisait qu'une classe image toute bête.
Hors il se trouve que je suis amené à découper ces images en sous-images, lesquelles ne sont finalement que des coordonnées dans l'image de départ, puisqu'elles ne modifiet pas le contenu.
Je me suis donc dit que je devrais p-e diviser ca en 3 classes:
1) Une classe image de base, abstraite, ne contenant pas de données mais implémentant certaines fonctions via des accesseurs virtuels.
2) Une classe d'image contenant réellement les données, ainsi qu'une liste de sous-images.
3) Une classe de sous-image, qui ne contiendrait que ses coordonnées et un pointeur vers l'image de départ (ou directement les données).
J'ai donc dans ma classe mère ces déclarations:
Dans ma classe fille contenant les données j'ai l'implémentation des fonctions virtuelles:
Ma question porte donc sur la 3ème fonction de la classe mère. En effet, si j'essaie de l'utiliser directement dans une méthode, dans le style :
le compilateur me fait savoir qu'il ne connait pas de fonction de ce genre...
J'ai donc ajouté la déclaration dans la classe fille, puis l'ai implémentée par:
Ceci compile, mais ca me parait plutot bancal...est-ce correct?
L'architecture vous parait-elle correcte?
Je suis ouvert à toute proposition...
Message édité par skeye le 22-05-2003 à 13:23:35