Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1749 connectés 

  FORUM HardWare.fr
  Programmation
  Ada

  POO, Ada.Finalization

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

POO, Ada.Finalization

n°2033380
Profil sup​primé
Posté le 31-10-2010 à 21:03:32  answer
 

bonjour,
 
Je débute en programmation orientée objet et j'ai un problème d'initialisation d'objet contrôlé.
 
Ce que je voudrais faire : C'est initialisé une variable de type accès à une chaîne englobé dans un enregistrement abstrait contrôlé et limité.
 
Voila ce que j'ai fait.
 
le paquetage "np", racine de la bibliothèque.
Spécification :

Code :
  1. package Np is
  2.   pragma Pure (Np);
  3. end Np;


 
Le paquetage "np-human", mon type abstrait T_Info(Hidden : Boolean).
Spécification :

Code :
  1. with Ada.Unchecked_Deallocation;
  2. with Ada.Finalization;
  3. package Np.human is
  4.  
  5.   type String_Access is access all String;
  6.   type Info(Hidden : Boolean) is
  7.     abstract new Ada.Finalization.Limited_Controlled with private;
  8.  
  9.  
  10.   procedure Initialize(I : in out Info);
  11.   procedure Finalize(I : in out Info);
  12. private
  13.   type Info(Hidden : Boolean) is
  14.     abstract new Ada.Finalization.Limited_Controlled with
  15.      record
  16.         Info : String_Access;
  17.      end record;
  18.   procedure Free is new Ada.Unchecked_Deallocation(String, String_access);
  19. end Np.Human;


 
Coprs : dans lequel j'espérais saisir l'info.
 

Code :
  1. with Text_Io;
  2. package body Np.human is
  3.  
  4.   procedure Initialize(I : in out Info) is
  5.   begin
  6.      null; -- ici, j'expérais saisir l'info;
  7.   end Initialize;
  8.  
  9.   procedure Finalize(I : in out Info) is
  10.   begin
  11.      Free(I.Info);
  12.   end Finalize;
  13.  
  14. end Np.Human;


 
Le paquetage "np-human-status, mon type effectif de classe T_Info(False).
Spécification :

Code :
  1. package Np.Human.Status is
  2.  
  3.   type T_Status is new info(False) with null record;
  4.   procedure Initialize(I : in out T_Status);
  5.   procedure Finalize(I : in out T_Status);
  6.  
  7. end Np.Human.Status;


Corps :

Code :
  1. with Text_Io;
  2. package body Np.Human.Status is
  3.  
  4.   procedure Initialize(I : in out T_Status) is
  5.   begin
  6.      Text_Io.Put("Status : " );
  7.   end Initialize;
  8.  
  9.   procedure Finalize(I : in out T_Status) is
  10.   begin
  11.      null;
  12.   end Finalize;
  13. end Np.Human.Status;


 
Le main :

Code :
  1. with Np, Np.Human, Np.Human.Status;
  2. use Np;
  3. procedure Main is
  4.  
  5.   Status : Human.Status.T_Status;
  6. begin
  7.  
  8.   null;
  9. end Main;


 
Comment devrais-je m'y prendre ?
Merci bien pour votre aide.

mood
Publicité
Posté le 31-10-2010 à 21:03:32  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Ada

  POO, Ada.Finalization

 

Sujets relatifs
Problème POO et execution de fonction[Ada+C] Storage Error à la lecture d'une entrée Midi en C via Ada
[POO]comment structurer une classe userfomulaire en POO? peut ton mettre du html[resolut]
[Ada][Life Cycle] Un jeu pas comme les autres.[Ada][Résolut] Error Vertex_Not_In_Graph à l'ajout d'un arc.
je cherche une implémentation des graphes avec Ada.[Ada/Modélisation] Modélisation d'un cerveau bicéphale.
[POO] Modélisation & simulations physiques[Poo] Dechargement de require_once
Plus de sujets relatifs à : POO, Ada.Finalization


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR