Next: 8.6 External functions
Up: 8. Using functions and
Previous: 8.4 Function overloading
You can define a function without having it followed by it's implementation,
by having it followed by the forward procedure. The effective
implementation of that function must follow later in the module.
The function can be used after a forward declaration as if it had been
implemented already.
The following is an example of a forward declaration.
Program testforward;
Procedure First (n : longint); forward;
Procedure Second;
begin
WriteLn ('In second. Calling first...');
First (1);
end;
Procedure First (n : longint);
begin
WriteLn ('First received : ',n);
end;
begin
Second;
end.
You cannot define a function twice as forward (nor is there any reason why
you would want to do that).
Likewise, in units, you cannot have a forward declared function of a
function that has been declared in the interface part. The interface
declaration counts as a forward declaration.
The following unit will give an error when compiled:
Unit testforward;
interface
Procedure First (n : longint);
Procedure Second;
implementation
Procedure First (n : longint); forward;
Procedure Second;
begin
WriteLn ('In second. Calling first...');
First (1);
end;
Procedure First (n : longint);
begin
WriteLn ('First received : ',n);
end;
end.
root
1999-06-10