Classe abstraite : initialisation utilisation
GeneralHammond89
-
Marco la baraque Messages postés 1030 Statut Contributeur -
Marco la baraque Messages postés 1030 Statut Contributeur -
Bonjour,
Voici mon problème, je dois réaliser un projet qui consiste à faire un jeu d'échecs en C++:
Pour cela j'ai une classe abstraite Piece et des classes qui en hérite Pion,Fou, Cavalier...
J'aimerai dans mon main utiliser un tableau de classes ou j'aurai par exemple
Piece *T;
Pion P;
Fou F; // et ainsi de suite
//et plus loin :
T[1]=P;
T[2]=F;
Ma question est comment faire pour que ça marche?
Je ne trouve pas la bonne initialisation à faire :
Tb = new Piece [N]; // est impossible puisque Piece est abstraite.
Merci d'avance pour votre aide!
Voici mon problème, je dois réaliser un projet qui consiste à faire un jeu d'échecs en C++:
Pour cela j'ai une classe abstraite Piece et des classes qui en hérite Pion,Fou, Cavalier...
J'aimerai dans mon main utiliser un tableau de classes ou j'aurai par exemple
Piece *T;
Pion P;
Fou F; // et ainsi de suite
//et plus loin :
T[1]=P;
T[2]=F;
Ma question est comment faire pour que ça marche?
Je ne trouve pas la bonne initialisation à faire :
Tb = new Piece [N]; // est impossible puisque Piece est abstraite.
Merci d'avance pour votre aide!
A voir également:
- Classe abstraite : initialisation utilisation
- Classe ram - Guide
- Bluetooth mercedes classe a - Forum Autoradio
- Sti2d classe poubelle - Forum Programmation
- Dans le code de la page, modifiez la couleur de fond de la classe .pix. - Forum Réseaux sociaux
- Bluetooth mercedes classe a 2005 - Forum Mobile
3 réponses
Peut être que ce n'est pas possible?
En tout cas je sais que ça marche avec un tableau a deux dimensions en faisant :
//Piece ***T;
et ensuite :
T=new Piece *[N];
(oups sinon il fallait lire T et pas Tbdans mon message précédent)
Une idée?
En tout cas je sais que ça marche avec un tableau a deux dimensions en faisant :
//Piece ***T;
et ensuite :
T=new Piece *[N];
(oups sinon il fallait lire T et pas Tbdans mon message précédent)
Une idée?
Bonjour Generalhammond89,
Si personne ne te répond, c'est sans doute parce qu'on est samedi et qu'il fait beau, peut-être les gens ne sont pas devant leur ordinateur en ce moment :) Laisse donc le sujet un peu plus longtemps, tu auras sans doute des réponses.
Concernant ton problème, c'est parce que tu ne peux pas instancier une classe abstraite (c'est justement ça la définition d'une classe abstraite). En effet, la classe étant abstraite, tu as des méthodes qui ne sont potentiellement pas implémentées. Il faut utiliser des instances de classes qui étendent ta classe abstraite, et qui ne sont elles-mêmes pas abstraites.
Par exemple dans ton cas tu vas créer une classe Pion, une classe Cavalier qui elles ne seront pas abstraites.
Ensuite, tu vas par exemple utiliser des références de type Piece pour les manipuler :
Piece T = new Cavalier();
Cordialement,
Si personne ne te répond, c'est sans doute parce qu'on est samedi et qu'il fait beau, peut-être les gens ne sont pas devant leur ordinateur en ce moment :) Laisse donc le sujet un peu plus longtemps, tu auras sans doute des réponses.
Concernant ton problème, c'est parce que tu ne peux pas instancier une classe abstraite (c'est justement ça la définition d'une classe abstraite). En effet, la classe étant abstraite, tu as des méthodes qui ne sont potentiellement pas implémentées. Il faut utiliser des instances de classes qui étendent ta classe abstraite, et qui ne sont elles-mêmes pas abstraites.
Par exemple dans ton cas tu vas créer une classe Pion, une classe Cavalier qui elles ne seront pas abstraites.
Ensuite, tu vas par exemple utiliser des références de type Piece pour les manipuler :
Piece T = new Cavalier();
Cordialement,
aller je vais tester une autre méthode (la provocation):
Pfff je vois que personne ici n'est capable de répondre à ma question, je savais bien que ce n'était pas ici que j'aurais l'avis des meilleurs connaisseurs^^