SEPARATORS:
separate (MY_S)
function MY_F return BOOLEAN is
begin
TEXT_IO.PUT_LINE (“In function MY_F”);
return TRUE;
end MY_S;
- Separates can be compiled in different libraries
- Separates should be compiled last
- Compilation sequence
- Dependent files
- Package specification
- Package body
- Separates
- Driver subprogram
OVERLOADING:
package MY_S is
function MY_F (I : INTEGER) return INTEGER;
function MY_F (I : STRING) return STRING;
end MY_S;
package body MY_S is
function MY_F (I : INTEGER) return INTEGER is separate;
function MY_F (I : STRING) return STRING is separate;
end MY_S;
separate (MY_S)
function MY_F (I : INTEGER) return INTEGER is separate;
J : INTEGER := 0;
begin
J := I;
return J;
end MY_F;
separate (MY_S)
function MY_F (I : STRING) return STRING is
J : STRING (1 .. 3) := “ABC”;
begin
J := I;
return J;
end MY_F;
with MY_S;
with TEXT_IO;
procedure MY_MAIN is
begin
TEXT_IO.PUT_LINE (INTEGER’IMAGE (MY_S.MY_F(20)));
TEXT_IO.PUT_LINE (MY_S.MY_F (“This is another line”);
end MY_MAIN;
package MY_P is
function “*” (L : INTEGER; R : FLOAT) return INTEGER;
procedure MAIN;
end MY_P;
with TEXT_IO;
package body MY_P is
function “*” (L : INTEGER; R : FLOAT) return INTEGER is
begin
— * from package STANDARD is called to avoid a
— recursive call to the same operator function
— Also notice the type casting
TEXT_IO.PUT_LINE (“You are in an overloaded operator”);
return STANDARD.”*” (L, INTEGER (R));
end “*”;
procedure MAIN is separate;
end MY_P;
separate (MY_P)
procedure MAIN is
A : INTEGER;
begin
A := 5 * 2.5; — Legal
A := 2.5 * 5; — Compilation Error
end MAIN;
Flip kart ads
you can buy DELL Batteries here :Â http://fkrt.it/1wccbKNNNN