• Viernes 3 de Mayo de 2024, 05:49

Autor Tema:  Problema Con Herencia Y Polimorfismos  (Leído 1825 veces)

uniross

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Problema Con Herencia Y Polimorfismos
« en: Jueves 20 de Abril de 2006, 18:51 »
0
Buenas tardes antes que nada.

El problema que se me plantea es el siguiente:

Se pretende implementar un tad para representar información sobre estudiantes. Los estudiantes tendrán los atributos y operaciones básicas del tipo Persona más una lista de asignaturas y las operaciones para gestionarla. La lista de asignaturas de un estudiante se implementará usando un contenedor lineal secuencial limitado en tamaño que también se desarrollará en esta práctica.

La cuestion es que tengo otro tipo, el tipo estudiantes que es un Tipo de datos derivado de Persona

El tema es que me da el error "The name does not resolve to a subtype mark, Continuing" cuando en el codigo intento enlazar parametros con los tipos "estudiantes" y con "fechas" y "asignaturas" que estan en otro dos ficheros, los cuales conecto mediante "librerias".

Pongo el código para ver si alguno sabe a que puede deberse. Gracias de antemano Smile

Paquete extension Personas
Código: Text
  1. with personas,asignaturas,fechas;
  2. use Personas,asignaturas,fechas;
  3. generic
  4.     tamanio :positive;
  5. package personas.estudiante is private
  6.    
  7.    procedure añadir_asignatura (asig: in out asignaturas; alum: in estudiante);
  8.    procedure poner_nota (Alum: in out estudiante; codigo: in positive; nota: in natural; fech: in fechas);
  9.    function ver_asignatura (Alum: estudiante; codigo: positive) return asignaturas;
  10.    function superadas (Alum: estudiante) return natural;
  11.    function No_superadas (Alum: estudiante) return natural;
  12.  
  13.    no_matriculado,ya_existe_asig,muchas_asignaturas: exception;
  14.  
  15. private
  16.       type estudiante is new Personas;
  17.  
  18. end personas.estudiante;
  19.  

Paquete personas

Código: Text
  1. with Ada.Strings.Unbounded;
  2. use  Ada.Strings.Unbounded;
  3. package Personas is
  4.    type Persona is tagged private;
  5.       -- Tipo base para representar personas.
  6.  
  7.    procedure Inicializar(
  8.             P: out Persona;
  9.             DNI: in Positive;
  10.             N, A1, A2: Unbounded_String
  11.          );
  12.       -- Da un valor a una variable de tipo persona.
  13.  
  14.    function DNI(P: in Persona) return Positive;
  15.       -- Devuelve el DNI de una persona.
  16.    function Nombre(P: in Persona) return Unbounded_String;
  17.       -- Devuelve el nombre de pila de una persona.
  18.    function Primer_Apellido(P: in Persona) return Unbounded_String;
  19.       -- Devuelve el primer apellido de una persona.
  20.    function Segundo_Apellido(P: in Persona) return Unbounded_String;
  21.       -- Devuelve el segundo apellido de una persona.
  22.    function Nombre_Completo(P: in Persona) return Unbounded_String;
  23.       -- Devuelve el nombre de una persona, en el fomato:
  24.       -- <Primer_Apellido Segundo_Apellido, Nombre>
  25.  
  26. private
  27.    -- Estructura de representación del tipo Persona
  28.    type Persona is tagged record
  29.       DNI: Positive;
  30.       Nombre: Unbounded_String;
  31.       Primer_Apellido: Unbounded_String;
  32.       Segundo_Apellido: Unbounded_String;
  33.    end record;
  34. end Personas;
  35.  

Gracias nuevamente :)