< Ada Programming 
 
 
 
 
      
Ada. Time-tested, safe and secure.
functionGenerate_Number (MaxValue : Integer)returnIntegerissubtypeRandom_TypeisIntegerrange0 .. MaxValue;packageRandom_PackisnewAda.Numerics.Discrete_Random (Random_Type); G : Random_Pack.Generator;beginRandom_Pack.Reset (G);returnRandom_Pack.Random (G);endGenerate_Number;functionGenerate_Number (MinValue : Integer; MaxValue : Integer)returnIntegerissubtypeRandom_TypeisIntegerrangeMinValue .. MaxValue;packageRandom_PackisnewAda.Numerics.Discrete_Random (Random_Type); G : Random_Pack.Generator;beginRandom_Pack.Reset (G);returnRandom_Pack.Random (G);endGenerate_Number;
Number_1 : Integer := Generate_Number (10);
Number_2 : Integer := Generate_Number (6, 10);
Function overloading in Ada
Ada supports all six signature options but if you use the arguments' name as option you will always have to name the parameter when calling the function. i.e.:
Number_2 : Integer := Generate_Number (MinValue => 6, MaxValue => 10);
Note that you cannot overload a generic procedure or generic function within the same package. The following example will fail to compile:
packagemyPackagegenerictypeValue_Typeis(<>); -- The first declaration of a generic subprogram -- with the name "Generic_Subprogram"procedureGeneric_Subprogram (Value :inoutValue_Type); ...generictypeValue_Typeis(<>); -- This subprogram has the same name, but no -- input or output parameters. A non-generic -- procedure would be overloaded here. -- Since this procedure is generic, overloading -- is not allowed and this package will not compile.procedureGeneric_Subprogram; ...generictypeValue_Typeis(<>); -- The same situation. -- Even though this is a function and not -- a procedure, generic overloading of -- the name "Generic_Subprogram" is not allowed.functionGeneric_Subprogram (Value : Value_Type)returnValue_Type;endmyPackage;
See also
Wikibook
Ada 95 Reference Manual
Ada 2005 Reference Manual
    This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.