Re: [Q] What does "*isa" stand for ?

Henrik Frystyk Nielsen (frystyk@w3.org)
Tue, 05 Mar 1996 20:38:44 -0500


Message-Id: <9603060138.AA04938@www20>
To: acs@aracnet.com
Cc: www-lib@w3.org
Subject: Re: [Q] What does "*isa" stand for ? 
Date: Tue, 05 Mar 1996 20:38:44 -0500
From: Henrik Frystyk Nielsen <frystyk@w3.org>

acs@aracnet.com writes:
> In a structured stream class,
> what does the structure member "*isa" stand for ?
> 
>   as in:
>           struct _HTStructured {
>              CONST HTStructuredClass *   isa;
>                  ....
>           }
> 
The isa element is the _only_ required part of a stream interface that
a stream has to provide. It is of type HTStreamClass which is defined in
HTStream.html. The isa element is an attempt to hide the fact that you
can't subclass as in C++, for example.

If no take a look at any of the stream implementations - or any function
using a stream - it use the methods pointed by the isa element.

It is a question whether the extra indirection going through the isa element
causes performance problems but the tests that I have performed using alpha's
profiler doesn't give this impression.

Henrik