method returning child, doesn't overrides declared method returning parent

Steven Schveighoffer schveiguy at yahoo.com
Tue Aug 30 09:23:25 PDT 2011


On Tue, 30 Aug 2011 12:18:32 -0400, Timon Gehr <timon.gehr at gmx.ch> wrote:

> On 08/30/2011 06:00 PM, Steven Schveighoffer wrote:
>> On Tue, 30 Aug 2011 11:58:43 -0400, Timon Gehr <timon.gehr at gmx.ch>  
>> wrote:
>>
>>> On 08/30/2011 05:49 PM, Christophe wrote:
>>>> The fact that the code compile only if all interface methods are
>>>> implemented does not imply that the programmer knows which method he
>>>> implemented hooks and which does not.
>>>
>>> interface I{
>>> void method();
>>> }
>>>
>>> class C: I{
>>> void method() {} // not a hook.
>>> }
>>
>> Why not? All a "hook" is is adding an entry into a base class' vtable.
>> This is no different, it's just the base "class" is an interface.
>>
>> -Steve
>
> As far as I can tell, a hook is overwriting an existing entry.

Nothing is "overwritten", what's written into the table is decided at  
compile-time.

-Steve


More information about the Digitalmars-d mailing list