home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / PASSRC.ZIP / VIRTUAL1.PAS < prev    next >
Pascal/Delphi Source File  |  1991-02-04  |  3KB  |  127 lines

  1.                                      (* Chapter 15 - Program 1 *)
  2. program Virtual_1;
  3.  
  4. { ******************** class definitions **********************}
  5.  
  6. type
  7.    Vehicle = object
  8.       Wheels : integer;
  9.       Weight : real;
  10.       constructor Init(In_Wheels : integer; In_Weight : real);
  11.       procedure Message;
  12.    end;
  13.  
  14.  
  15.    Car = object(Vehicle)
  16.       Passenger_Load : integer;
  17.       constructor Init(In_Wheels : integer;
  18.                        In_Weight : real;
  19.                        People    : integer);
  20.       procedure Message;
  21.    end;
  22.  
  23.  
  24.    Truck = Object(Vehicle)
  25.       Passenger_Load : integer;
  26.       Payload        : real;
  27.       constructor Init(People : integer;
  28.                        Max_Load : real;
  29.                        In_Wheels : integer;
  30.                        In_Weight : real);
  31.       procedure Message;
  32.    end;
  33.  
  34. { ********************* class implementations ******************** }
  35.  
  36.    constructor Vehicle.Init(In_Wheels : integer; In_Weight : real);
  37.    begin
  38.       Wheels := In_Wheels;
  39.       Weight := In_Weight;
  40.    end;
  41.  
  42.    procedure Vehicle.Message;
  43.    begin
  44.       WriteLn('This message is from the vehicle.');
  45.    end;
  46.  
  47.  
  48.  
  49.    constructor Car.Init(In_Wheels : integer;
  50.                         In_Weight : real;
  51.                         People    : integer);
  52.    begin
  53.       Wheels := In_Wheels;
  54.       Weight := In_Weight;
  55.       Passenger_Load := People;
  56.    end;
  57.  
  58.    procedure Car.Message;
  59.    begin
  60.       WriteLn('This message is from the car.');
  61.    end;
  62.  
  63.  
  64.  
  65.    constructor Truck.Init(People : integer;
  66.                           Max_Load : real;
  67.                           In_Wheels : integer;
  68.                           In_Weight : real);
  69.    begin
  70.       Passenger_Load := People;
  71.       Payload := Max_Load;
  72.       Wheels := In_Wheels;
  73.       Weight := In_Weight;
  74.    end;
  75.  
  76.    procedure Truck.Message;
  77.    begin
  78.       WriteLn('This message is from the truck.');
  79.    end;
  80.  
  81.  
  82.  
  83.    procedure Output_A_Message(VAR Machine : Vehicle);
  84.    begin
  85.       Write('This is from Output_A_message; ');
  86.       Machine.Message;
  87.    end;
  88.  
  89.  
  90. { ************************ main program ************************** }
  91.  
  92. var Unicycle : Vehicle;
  93.     Sedan    : Car;
  94.     Semi     : Truck;
  95.  
  96. begin
  97.  
  98.    Unicycle.Init(1, 12.0);
  99.    Sedan.Init(4, 2100.0, 5);
  100.    Semi.Init(1, 25000.0, 18, 5000.0);
  101.  
  102.    WriteLn;
  103.    Unicycle.Message;
  104.    Sedan.Message;
  105.    Semi.Message;
  106.  
  107.    WriteLn;
  108.    Output_A_Message(Unicycle);
  109.    Output_A_Message(Sedan);
  110.    Output_A_Message(Semi);
  111.  
  112. end.
  113.  
  114.  
  115.  
  116.  
  117. { Result of execution
  118.  
  119. This message is from the vehicle.
  120. This message is from the car.
  121. This message is from the truck.
  122.  
  123. This is from Output_A_Message; This message is from the vehicle.
  124. This is from Output_A_Message; This message is from the vehicle.
  125. This is from Output_A_Message; This message is from the vehicle.
  126.  
  127. }