[CPP] SujetD'observation - Projet2

Voir le sujet précédent Voir le sujet suivant Aller en bas

resolu [CPP] SujetD'observation - Projet2

Message  ayoub le Jeu 15 Mar 2012, 13:57

Bonjour. Je voulais savoir : à partir du moment où l'on décide de réaliser le projet 2 avec la librairie de monsieur Monbaliu Othello.h, comment faire
pour dire que la classe hérite de la classe SujetDObservation. On ne peut pas modifier une librairie donc comment faire?

J'ai pensé à crée une nouvelle classe qui aurait comme attribut privée un Othello et là, faire hériter celle-ci par la classe SujetDObservation mais je trouve que c'est assez pauvre de ne crée une classe que pour un attribut?


Dernière édition par ayoub le Ven 16 Mar 2012, 23:30, édité 1 fois

ayoub

Nombre de messages : 41
Age : 24
Prénom : Ayoub
Statut : Ancien Etudiant
Localisation : Saint-Gilles
Date d'inscription : 10/05/2011

Revenir en haut Aller en bas

resolu Re: [CPP] SujetD'observation - Projet2

Message  smb le Jeu 15 Mar 2012, 14:40

ayoub a écrit:Bonjour. Je voulais savoir : à partir du moment où l'on décide de réaliser le projet 2 avec la librairie de monsieur Monbaliu Othello.h, comment faire
pour dire que la classe hérite de la classe SujetDObservation. On ne peut pas modifier une librairie donc comment faire?

J'ai pensé à crée une nouvelle classe qui aurait comme attribut privée un Othello et là, faire hériter celle-ci par la classe SujetDObservation mais je trouve que c'est assez pauvre de ne crée une classe que pour un attribut?

... et pourtant, c'est la solution !

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

resolu Re: [CPP] SujetD'observation - Projet2

Message  ayoub le Jeu 15 Mar 2012, 14:47

Donc alors je crée un header pour une classe PartieOthello par exemple ou je mets comme attribut seulement l'attribut Othello de la classe Othello?
Pas besoin de classe source PartieOthello.cpp alors?

Merci monsieur
Very Happy

ayoub

Nombre de messages : 41
Age : 24
Prénom : Ayoub
Statut : Ancien Etudiant
Localisation : Saint-Gilles
Date d'inscription : 10/05/2011

Revenir en haut Aller en bas

resolu Re: [CPP] SujetD'observation - Projet2

Message  ayoub le Jeu 15 Mar 2012, 14:53

Ah si je devrais pour le constructeur et le destructeur Smile

ayoub

Nombre de messages : 41
Age : 24
Prénom : Ayoub
Statut : Ancien Etudiant
Localisation : Saint-Gilles
Date d'inscription : 10/05/2011

Revenir en haut Aller en bas

resolu Re: [CPP] SujetD'observation - Projet2

Message  ayoub le Jeu 15 Mar 2012, 15:00

Mais monsieur, juste une dernière chose, devant mettre à la fin de la méthode placerPion l'instruction notifierChangement(), comment puis-je le faire sur la nouvelle classe n'ayant qu'un attribut?

ayoub

Nombre de messages : 41
Age : 24
Prénom : Ayoub
Statut : Ancien Etudiant
Localisation : Saint-Gilles
Date d'inscription : 10/05/2011

Revenir en haut Aller en bas

resolu Re: [CPP] SujetD'observation - Projet2

Message  smb le Jeu 15 Mar 2012, 17:02

ayoub a écrit:Mais monsieur, juste une dernière chose, devant mettre à la fin de la méthode placerPion l'instruction notifierChangement(), comment puis-je le faire sur la nouvelle classe n'ayant qu'un attribut?

Elle n'a qu'un seul attribut mais bien évidemment plusieurs méthodes : quasi les mêmes que la classe Othello fournie !

Ceci dit, il y avait une deuxième solution : l'héritage private. ET là, 0 attribut !

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

resolu Re: [CPP] SujetD'observation - Projet2

Message  nvs le Jeu 15 Mar 2012, 17:38

smb a écrit:Ceci dit, il y avait une deuxième solution : l'héritage private. ET là, 0 attribut !
la méthode placer n'étant pas virtuelle, l'héritage est-il une bonne idée ?









Basketball

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

resolu Re: [CPP] SujetD'observation - Projet2

Message  smb le Jeu 15 Mar 2012, 17:57

nvs a écrit:
smb a écrit:Ceci dit, il y avait une deuxième solution : l'héritage private. ET là, 0 attribut !
la méthode placer n'étant pas virtuelle, l'héritage est-il une bonne idée ?
Basketball

Il s'agit d'héritage private!

Il faudra donc de toute façon, dans la classe dérivée, définir des méthodes qu'on offrira en public et qui utiliseront les méthodes héritées. Ce qui revient à dire, qu'au niveau du résultat, cette technique ressemble trait pour trait à la composition. Maintenant, si c'est une bonne idée au pas, c'est juste pour donner un exemple d'utilisation de l'héritage private...

Et pour ce qui concerne virtual, l'héritage private "tue" le polymorphisme.

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

resolu Re: [CPP] SujetD'observation - Projet2

Message  ayoub le Jeu 15 Mar 2012, 21:27

Evidemment je trouve que l'héritage privée est une super idée et que c'est assez bien niveau implémentation. Donc si j'ai bien compris,
je ferais une classe qui héritera de la classe Othello et là je lui ferais des méthodes publiques dont l'implémentation serait un appel de méthode vers ceux de la classe Othello avec si besoin l'instruction NotifierChangement?

J'y avais vraiment pas songé et je trouve que c'est un cas judicieux pour l'implémentation de l'héritage privée cheers

ayoub

Nombre de messages : 41
Age : 24
Prénom : Ayoub
Statut : Ancien Etudiant
Localisation : Saint-Gilles
Date d'inscription : 10/05/2011

Revenir en haut Aller en bas

resolu Re: [CPP] SujetD'observation - Projet2

Message  smb le Jeu 15 Mar 2012, 22:07

ayoub a écrit:Evidemment je trouve que l'héritage privée est une super idée et que c'est assez bien niveau implémentation. Donc si j'ai bien compris,
je ferais une classe qui héritera de la classe Othello et là je lui ferais des méthodes publiques dont l'implémentation serait un appel de méthode vers ceux de la classe Othello avec si besoin l'instruction NotifierChangement?

J'y avais vraiment pas songé et je trouve que c'est un cas judicieux pour l'implémentation de l'héritage privée cheers

Ce n'est pas une super idée, c'est une autre solution que la composition !
Maintenant, je serais curieux de voir comment tu vas implémenter tout çà !

Autre chose, veux-tu bien mettre ton profil à jour pour savoir à qui on s'adresse ?

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

resolu Re: [CPP] SujetD'observation - Projet2

Message  ayoub le Jeu 15 Mar 2012, 22:17

Je vais essayer d'un peu travailler cela et sans soucis je vais mettre mon profil à jour.
Un grand merci en tout cas et bonne soirée monsieur

ayoub

Nombre de messages : 41
Age : 24
Prénom : Ayoub
Statut : Ancien Etudiant
Localisation : Saint-Gilles
Date d'inscription : 10/05/2011

Revenir en haut Aller en bas

resolu Re: [CPP] SujetD'observation - Projet2

Message  esat le Dim 25 Mar 2012, 20:49

j'ai le meme problem mais avec l'explication je n'ai pas reussi faire la classe correctement ...
quelqu'un pourrait donner un tite exemple pour que je puisse utiliser le moteur (othello)?


classe Othello2: public sujetDobservation{

private :
Othello test;

}

esat

Nombre de messages : 7
Date d'inscription : 24/11/2010

Revenir en haut Aller en bas

resolu Re: [CPP] SujetD'observation - Projet2

Message  bigmax le Dim 25 Mar 2012, 23:50

Aller parce que je sent que t'es pas trop en avance pour rendre ton projet..

Code:

#ifndef OTHELLOSDO_H_
#define OTHELLOSDO_H_

#include "Othello.h"
#include "sujetDObservation.h"

class OthelloSDO : public Othello, public SujetDObservation {
public:
   OthelloSDO(int lignes = 8,int colonnes = 8) throw (std::logic_error);
   OthelloSDO(const OthelloSDO & original);
   void placerPionSDO(bool pionBlanc, Position pos) throw (std::logic_error);
   virtual ~OthelloSDO();
};
Code:
#include "./headers/OthelloSDO.h"

OthelloSDO::OthelloSDO(int nbLignes, int nbColonnes) throw (std::logic_error) {
   Othello(nbLignes,nbColonnes);

}
OthelloSDO::OthelloSDO(const OthelloSDO & original):Othello(original){

}

OthelloSDO::~OthelloSDO() {

}
void OthelloSDO::placerPionSDO(bool pionBlanc,Position pos) throw (std::logic_error){
   Othello::placer(pionBlanc,pos);
   this->notifierChangement();
}
et pour la théorie c'est ici

Mais j'avoue ne pas comprendre pourquoi hériter en privé. Je n'ai redéfini que la méthode "placer" qui est la seule susceptible de modifier l'état du plateau.
Mais les autres méthodes comme rangees(), colonnes() ne seront plus accessibles ailleurs que la classe fille donc les avantages de pouvoir réutiliser les méthodes de la classe mère sont annulés non ?

bigmax

Nombre de messages : 132
Age : 27
Prénom : Gilles
Statut : 3ème Réseaux
Date d'inscription : 17/11/2007

Revenir en haut Aller en bas

resolu Re: [CPP] SujetD'observation - Projet2

Message  esat le Lun 26 Mar 2012, 00:22

Mercii mais ca ne m'aide pas pour une raison que j'ignore totalement depuis deux heures... j'utilise que le constructeur et cela me suffise pour le jeu Smile l


Dernière édition par esat le Lun 26 Mar 2012, 03:05, édité 1 fois

esat

Nombre de messages : 7
Date d'inscription : 24/11/2010

Revenir en haut Aller en bas

resolu Re: [CPP] SujetD'observation - Projet2

Message  Dj x-fuse le Lun 26 Mar 2012, 00:31

Enfaite, peut importe que tu utilises l'héritage ou l'attribut Othello, l'implémentation des méthodes (sauf constructeur) sont +/- pareilles.

Exemple héritage :
Code:
std::string OthelloSDO::toString() const{
   return Othello::toString();
}
Exemple attibut :
Code:
std::string OthelloSDO::toString() const{
   return othello->toString();
}

Dj x-fuse

Nombre de messages : 658
Age : 27
Prénom : Jonathan
Statut : 4ième sécu
Localisation : IRL
Date d'inscription : 18/10/2008

Revenir en haut Aller en bas

resolu Re: [CPP] SujetD'observation - Projet2

Message  Contenu sponsorisé Aujourd'hui à 14:32


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum