Ejemplo de una classe

 
program Virtual_2;
 
uses crt;
{$R+}
 
type
   Vehicle = object
      Wheels : integer;
      Weight : real;
      constructor Init(In_Wheels : integer; In_Weight : real);
      procedure Message; virtual;
   end;
 
 
   Car = object(Vehicle)
      Passenger_Load : integer;
      constructor Init(In_Wheels : integer;
                       In_Weight : real;
                       People    : integer);
      procedure Message; virtual;
   end;
 
 
   Truck = Object(Vehicle)
      Passenger_Load : integer;
      Payload        : real;
      constructor Init(People : integer;
                       Max_Load : real;
                       In_Wheels : integer;
                       In_Weight : real);
      procedure Message; virtual;
   end;
 
{ ********************* Implementacion ******************** }
 
   constructor Vehicle.Init(In_Wheels : integer; In_Weight : real);
   begin
      Wheels := In_Wheels;
      Weight := In_Weight;
   end;
 
   procedure Vehicle.Message;
   begin
      WriteLn('This message is from the vehicle.');
   end;
 
 
 
   constructor Car.Init(In_Wheels : integer;
                        In_Weight : real;
                        People    : integer);
   begin
      Wheels := In_Wheels;
      Weight := In_Weight;
      Passenger_Load := People;
   end;
 
   procedure Car.Message;
   begin
      WriteLn('This message is from the car.');
   end;
 
 
 
   constructor Truck.Init(People : integer;
                          Max_Load : real;
                          In_Wheels : integer;
                          In_Weight : real);
   begin
      Passenger_Load := People;
      Payload := Max_Load;
      Wheels := In_Wheels;
      Weight := In_Weight;
   end;
 
   procedure Truck.Message;
   begin
      WriteLn('This message is from the truck.');
   end;
 
 
 
   procedure Output_A_Message(VAR Machine : Vehicle);
   begin
      Write('This is from Output_A_message; ');
      Machine.Message;
   end;
 
 
{ ************************ main program ************************** }
 
var Unicycle : Vehicle;
    Sedan    : Car;
    Semi     : Truck;
 
begin
 
   Unicycle.Init(1, 12.0);
   Sedan.Init(4, 2100.0, 5);
   Semi.Init(1, 25000.0, 18, 5000.0);
 
   WriteLn;
   Unicycle.Message;
   Sedan.Message;
   Semi.Message;
 
   WriteLn;
   Output_A_Message(Unicycle);
   Output_A_Message(Sedan);
   Output_A_Message(Semi);
   readkey;
end.
 
 
 
 
{ Result of execution
 
This message is from the vehicle.
This message is from the car.
This message is from the truck.
 
This is from Output_A_Message; This message is from the vehicle.
This is from Output_A_Message; This message is from the car.
This is from Output_A_Message; This message is from the truck.
 
}

¿Has encontrado algún error? ¿Tienes la solución? Dejame tu correción ;-)

Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress las eliminó al verlas como etiquetas HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios. Y lo mas importante: Todos los ejemplos fueron realizados por personas con únicamente conocimiento básico del lenguaje, no de programación.

Otro punto importante: Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:

  • Si es lenguaje C [c]Código en C[/c]
  • Si es lenguaje Pascal [pascal]Aquí dentro el código de Pascal[/pascal].

De esta manera el código coloreas el código.

Otro punto importante para muchos que sienten que se les ignora: Todos los comentarios los reviso y en su debido momento los apruebo, pero ojo con el con lo siguiente:

Me reservo el derecho de alterar, publicar o no los comentarios as´ como cambiar mis condiciones en el momento que así lo requiera.

¿estas de acuerdo? entonces adelante que ya te he quitado bastante tiempo leyendo esta basura de advertencias :)