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

WinDev Discussion :

apprentissage de la POO


Sujet :

WinDev

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut apprentissage de la POO
    bonjour a tous,

    Afin de pouvoir mieux me familiariser avec le concept de la programmation orientée objet, je m'amuse à suivre les tutos qu'il y a dans la partie tutoriels.
    Je m'essai sur le tutoriel "La P.O.O : Les classes composées d'objets". Je pense avoir bien suivi la démarche de l'exemple sauf que j'ai une erreur lors que j’exécute le TP.

    La création de l'objet "Auteur" se déroule correctement par contre lorsque je crée le livre j'ai une erreur fatal

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Erreur à la ligne 1 du traitement Constructeur de la classe Livre.
    On ne peut pas affecter à un objet autre chose qu'un objet de la même classe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Appel WL :
    Traitement de 'Constructeur de la classe Livre' (Livre.Constructeur), ligne 1, thread 0
    Dans la pile j'ai ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Constructeur de la classe Livre (Livre.Constructeur), ligne 1
    Clic sur BTN_CreerLivre (FEN_Départ.BTN_CreerLivre), ligne 1
    dans la déclaration des attributs de la classe Livre j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Livre est une Classe
    	PRIVÉ
    		Titre est une chaîne = ""
    		Numero est un entier = 0
    		AuteurLivre est un objet Auteur dynamique
    	PROTÉGÉ
    GLOBAL
    			CompteurLivre est un entier
    FIN
    Pour le constructeur de cette classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    PROCEDURE Constructeur(P_Titre,aut)
    :Titre = P_Titre
    :AugmentCompteur()
    :Numero = ::GetCompteur()
    :AuteurLivre = aut
    et pour le code lié au bouton CreerLivre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Liv1=allouer un Livre(SAI_LTitre,Aut1)

    dans aut , j'ai bien un objet de type Auteur avec le nom et le prenom


    N'étant pas familiarisé avec l'orientée objet, j'ai un peu de mal a comprendre l'origine du problème pour le résoudre.

    Pouvez vous m'aider s'il vous plait ?

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    En premier lieu, je dirai que tu devrais typer les paramètres du constructeur, car ici on ne sait pas trop ce que fait WinDev.
    Ensuite on ne voit pas la déclaration de Liv1, j'imagine que c'est "un livre dynamique". Est-ce bien le cas ?

    Tatayo.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut
    pour Liv1 est bien cela, dans le tuto, il le fait déclarer dans l'initialisation du code projet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Aut1 est une objet Auteur dynamique
    Liv1 est un objet Livre dynamique
    j'ai type les paramètres mais ça ne change rien

    Dans aut j'ai comme valeur <auteur>prenom="toto"nom="titi" et dans P_titre j'ai comme valeur "POO"

    merci pour ton aide

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    On peut voir le code ?

    Tatayo.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut
    quelle partie du code tu veux ?

    celui du constructeur ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    PROCEDURE Constructeur(P_Titre est une chaîne,aut est un objet Auteur)
    :Titre = P_Titre
    :AugmentCompteur()
    :Numero = ::GetCompteur()
    :AuteurLivre = aut

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Pour ma part je passerai plutôt par un objet dynamique dans le constructeur:
    Code WinDev : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PROCEDURE Constructeur(P_Titre est une chaîne,aut est un Auteur dynamique)

    Comment est alloué Aut1 ? Je ne vois pas d'allocation dans le code que tu nous montres.

    Tatayo.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut
    Bonjour,

    Aut1 est alloué lors de la création de l'auteur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Aut1 =allouer un Auteur(SAI_ANom,SAI_APrenom)
    Copie d'écran issu du tuto

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Le problème ici est que tu nous montres des bribes de code, mais on ne sait rien de l'enchainement de ces morceaux de code (qui est appelé quand ?).
    Je pense que le mieux serait de poser un point d'arrêt (par exemple sur l'allocation de Liv1),et de vérifier le contenu des variables.
    Tu nous dis par exemple que Aut1 est allouer à la création de Auteur. Que se passe t'il dans le cas d'un auteur existant ?

    Tatayo.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut
    C'est vrai que c'est loin d'être évident de comprendre tous les enchaînements je te met le lien vers le tuto ça sera plus facile de voir le contenu des classes et tous les attibuts
    http://wind.developpez.com/tutoriels...poo-objets/#L0


    Lors que l'on ne crée pas d'auteur j'ai exactement le même message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Erreur à la ligne 1 du traitement Constructeur de la classe Livre.
    On ne peut pas affecter à un objet autre chose qu'un objet de la même classe.
    Lorsque les 2 zones de saisie nom de l'auteur et Prénom de l'auteur sont saisis voila ce que j'ai dans les variables

    Etat avant d'entrer dans le constructeur de la classe Auteur
    Nom : Image 001.png
Affichages : 524
Taille : 7,8 Ko

    Etat de fin après validation par créer Auteur
    Nom : Image 002.png
Affichages : 499
Taille : 8,1 Ko


    Etat des variables en début d'action sur le bouton Créer Livre
    Nom : Image 003.png
Affichages : 509
Taille : 9,9 Ko

    En entrant dans le constructeur de la classe Livre
    Nom : Image 004.png
Affichages : 519
Taille : 12,1 Ko

    C'est à ce niveau lors que j'entre dans le constructeur que j'ai le message d'erreur

Discussions similaires

  1. [Avis] Livre JAVA - apprentissage POO + DP
    Par sidguia dans le forum Débuter
    Réponses: 0
    Dernier message: 21/09/2012, 10h42
  2. POO Début d'apprentissage
    Par flozza dans le forum Langage
    Réponses: 8
    Dernier message: 10/01/2012, 17h16
  3. [POO] POO & PHP : Apprentissage
    Par MmoulinexX dans le forum Langage
    Réponses: 10
    Dernier message: 09/03/2009, 16h43
  4. Réponses: 3
    Dernier message: 19/02/2008, 09h24
  5. apprentissage du C est-il necessaire pour C++ ?
    Par Anonymous dans le forum C
    Réponses: 6
    Dernier message: 02/05/2002, 12h56

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