Function Hijacking article
Walter Bright
newshound1 at digitalmars.com
Thu Oct 18 16:40:39 PDT 2007
Stewart Gordon wrote:
> "Walter Bright" <newshound1 at digitalmars.com> wrote in message
> news:ff8fi1$fs7$1 at digitalmars.com...
>> Stewart Gordon wrote:
> <snip>
>>> And I noticed that the requirement to specify the override attribute
>>> is neither implemented nor documented under attribute.html - what gives?
>>
>> It is documented in the function.html and attribute.html.
>
> I still can't find it anywhere.
In attribute.html, click on "override" under "Attribute" in the grammar
section. In function.html, search for "override".
>
>> It is implemented if you add the -w switch.
>
> I see....
>
> <snip>
>>> But if there's no chance of calling one intending the other, e.g.
>>>
>>> class Qwert {
>>> void yuiop(int i) { writefln("Qwert.yuiop: int %d", i); }
>>> void yuiop(string s) { writefln("Qwert.yuiop: string %s", s); }
>>> }
>>>
>>> class Asdfg : Qwert {
>>> override void yuiop(string s) { writefln("Asdfg.yuiop: string %s",
>>> s); }
>>> }
>>>
>>> should it still count?
>>
>> Yes, because Qwert can have a function which calls yuiop(int) with an
>> Asdfg instance.
>
> I'm not with you. How exactly does this render my example susceptible
> to the hijacking problem?
If Qwert defines a function def:
void def()
{
yuiop(1);
}
More information about the Digitalmars-d-announce
mailing list