[fpc-pascal]My object function is overriding real function
Jeremy Cowgar
jc at cowgar.com
Thu Feb 19 02:50:15 CET 2004
Greetings.
I have a object that connects to a speech server, festival. In my
object, I define a function called close. This must close the socket
connection, which is done by the function close. Therefore, I am having
a problem, because simply calling close with the sin and sout parameters
results in an error because it is calling my objects close function
which takes no parameters.
How can I call a function that is not part of my object, but has the
same name as one of my object functions? Here is my simple code, for
example:
function TFestival.Open(host : string; port : integer) : integer;
var
h : THost;
addr : TInetSockAddr;
begin
h.NameLookup(host);
if h.LastError <> 0 then
begin
Open := 1;
Exit;
end;
addr.family := AF_INET;
addr.port := ShortHostToNet(port);
addr.addr := HostTonet(longint(h.IPAddress));
sock := Socket(AF_INET, SOCK_STREAM, 0);
if Not Connect(sock, addr, sin, sout) then
begin
Open := 2;
Exit;
end;
rewrite(sout);
reset(sin);
Open := 1;
end;
procedure TFestival.Close();
begin
close(sin);
close(sout);
Close := 0;
end;
I realize that I can simply rename my close procedure but I imagine that
I will run into similar situations as I continue to use Free Pascal.
Thank you for your help,
Jeremy
More information about the fpc-pascal
mailing list