IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ruby Discussion :

Héritage en Ruby


Sujet :

Ruby

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 35
    Par défaut Héritage en Ruby
    Bonjour,

    Suivant un tutorial, je suis dans la partie "Héritage". La classe qui sert d'exemple à ce concept de la POO à l'air assez simpliste, mais l'interpréteur Ruby refuse de l'exécuter ...
    J'ai une classe qui s'appelle "QuiSuisJe.rb" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    class QuiSuisJe
     
    @@count = 0
     
      def initialize (prenom, nom)
        @prenom = prenom
        @nom = nom
        @@count += 1
      end
     
      def saluer
    "Bonjour, #{@prenom} #{@nom} !"
      end
     
      def to_s
    "Je suis #{@prenom} #{@nom} - <#{object_id}>"
      end
     
      def self.counter
      "Nombre d'instances de la classe  #{self} : #{@@count} "
      end
     
    end
    et un autre fichier qui s'appelle "Developpeur.rb" qui va justement hériter de cette classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    class Developpeur < QuiSuisJe
     
      def initialize(prenom, nom, occupation)
        super(prenom, nom)
        @occupation = occupation
      end
     
      def tonOccupation
        super + "Alors comme ça tu es un #{@occupation} ?"
      end
     
      def to_s
        super + "[#{@occupation}]"
      end
     
    end
     
    puts Developpeur.new('Jean', 'Dupond', 'Rubyiste')
    puts "************************"
    puts Developpeur.new('Jean', 'Dupond', 'Rubyiste').tonOccupation
    Dans la console s'affiche ceci :

    H:/My Documents/Tests_Ruby/Essais/src/instance/developpeur.rb:1: uninitialized constant QuiSuisJe (NameError)

    Manque-t-il une indication pour indiquer à la classe "Developpeur.rb" qu'elle hérite de "QuiSuisJe.rb" ????
    Si vous avez une idée .... merci.

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2004
    Messages : 118
    Par défaut
    et là, la classe sera connue dans le deuxième script.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 35
    Par défaut
    Merci Onarap.
    Effectivement en ajoutant cette directive en dehors de la classe héritée, cela fonctionne.
    Quand on demande la création d'une classe QuiSuisJe, RadRails génère un fichier qui s'appelle "qui_suis_je.rb", la bonne orthographe de la directive est donc : "qui_suis_je.rb"
    Mai merci bcp Onarap, ce qui est étrange est que le tutoriel ne le mentionne pas.

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2004
    Messages : 118
    Par défaut
    Dans rails il doit y avoir une autre possbilité, genre "model :quisuisje" pour connaître des classes définies dans un autre script.
    Ce n'est un pas un problème d'héritage mais d'importation de code défini ailleurs.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/05/2011, 10h00
  2. [Postgresql]Héritage
    Par lheureuxaurelie dans le forum PostgreSQL
    Réponses: 13
    Dernier message: 02/10/2008, 09h18
  3. [XML Schemas]héritage multiple
    Par nicolas_jf dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 10/06/2003, 12h55
  4. [Postgres] Héritage + Clés
    Par k-reen dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 21/05/2003, 16h37
  5. Héritage entre Forms
    Par BarBal dans le forum Composants VCL
    Réponses: 7
    Dernier message: 29/08/2002, 17h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo