Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Besoin de conseils  (Lu 9914 fois)

0 Membres et 1 Invité sur ce sujet

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Besoin de conseils
« Réponse #15 le: Juin 04, 2012, 02:19:05 pm »
C'est quoi "une fonction dérivée de SetTextureRect" ? Elle n'est pas virtuelle, tu ne peux pas la redéfinir.
Laurent Gomila - SFML developer

Cpl.Bator

  • Hero Member
  • *****
  • Messages: 540
    • Voir le profil
Re : Besoin de conseils
« Réponse #16 le: Juin 04, 2012, 08:05:46 pm »
L'idéal serait de proposé à ceux qui font le c++ de créer un nouvel attribut en plus de public, protected, private.
"hidden" par exemple , suivi des méthodes que l'on veut cacher à l'utilisateur final.

class          AnimSprite : public sf::Sprite
{
   public:

   /* mes méthodes publique... */

   hidden: /* on redefini les méthode dérivé , pas forcement virtuelle, elle deviennent inutilisable par une instance de AnimSprite  */

   setTextureRect(...)

};
 

Reste à savoir qui contacté pour soumettre cette idée qui résoudrais le problème d'héritage.  :-X
non ?  :)
« Modifié: Juin 04, 2012, 09:00:00 pm par Laurent »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Besoin de conseils
« Réponse #17 le: Juin 04, 2012, 09:04:53 pm »
C'est incompatible avec la façon dont fonctionne l'héritage publique et le polymorphisme. Si B dérive de A, alors on doit pouvoir substituer un B partout où on attend un A* ou A&. Rendre la fonction inaccessible dans B (ce qui est possible d'ailleurs, suffit de la redéclarer private) ne changerait rien au fait qu'elle serait toujours accessible lorsque l'on manipule l'objet en tant que A&.

Et bon courage pour proposer quelque chose au comité de normalisation, c'est pas comme une bibliothèque pour laquelle on peut faire des suggestions sur un tracker ;)
Les évolutions du langage se font je pense plutôt sur des points bien connus et discutés depuis longtemps. Si quelqu'un vient proposer tout à coup une "fonctionnalité" nouvelle à laquelle personne n'avait pensé, et donc qui ne résoud probablement pas de problématique connue, ce serait louche.
En plus la norme vient de subir une évolution majeure, la prochaine ne se fera pas avant plusieurs années.
Laurent Gomila - SFML developer

kamui

  • Sr. Member
  • ****
  • Messages: 291
    • Voir le profil
Re : Re : Besoin de conseils
« Réponse #18 le: Juin 27, 2012, 05:29:59 pm »
C'est incompatible avec la façon dont fonctionne l'héritage publique et le polymorphisme. Si B dérive de A, alors on doit pouvoir substituer un B partout où on attend un A* ou A&.

C'est le principe de substitution de Liskov dont parle Laurent ici : tu trouveras des informations sur le net sur ce genre de principes généraux qu'il faut connaitre par coeur (et s'en servir pour concevoir ses applis)

je penses que ce lien pourrait t'intéresser.

Citer
Rendre la fonction inaccessible dans B (ce qui est possible d'ailleurs, suffit de la redéclarer private) ne changerait rien au fait qu'elle serait toujours accessible lorsque l'on manipule l'objet en tant que A&.

Du coup aucune chance que le comité accepte un jour ta modification, déjà possible.

Citer
Et bon courage pour proposer quelque chose au comité de normalisation, c'est pas comme une bibliothèque pour laquelle on peut faire des suggestions sur un tracker ;)
Les évolutions du langage se font je pense plutôt sur des points bien connus et discutés depuis longtemps. Si quelqu'un vient proposer tout à coup une "fonctionnalité" nouvelle à laquelle personne n'avait pensé, et donc qui ne résoud probablement pas de problématique connue, ce serait louche.
En plus la norme vient de subir une évolution majeure, la prochaine ne se fera pas avant plusieurs années.
2017 en théorie, comme les élections présidentielles  ;D
De toute façon y'a déjà bien assez à faire avec la nouvelle norme.