No registered users in community xowiki
in last 10 minutes
in last 10 minutes
Re: [Xotcl] Problem with per-object mixins?
From: Kristoffer Lawson <setok_at_fishpool.com>
Date: Wed, 5 Sep 2001 23:48:56 +0300 (EEST)
On Wed, 5 Sep 2001, Sheik Yussuff wrote:
> Consider the following program fragment:(Win 98 ver 0.85) where:
> 1. X has subclasses B and C
> 2. X has instproc m
> 3. object a mixes in {C B}
> 4. message p sent to object a(see code below)
>
> The code produces as answer:
> method p of A
> method m
> method m of A
>
> I expected:
> method p of A
> method m
> method m
> method m of A
I think your confusion is because class B and C both have the superclass
X, you expect method 'm' to be passed twice to class X. This is apparently
how C++ does it, and leads to substantial complexities in the
language. XOTcl never goes to the same superclass twice in method calls
(so if you increase an index in a super-class, you will be assured it wont
be increased twice by mistake!). I think this is explained rather well in
the XOTcl tutorial. At least it was when I read it through (a while back
now..).
- ---------- = = ---------//--+
| / Kristoffer Lawson | www.fishpool.fi|.com
+-> | setok_at_fishpool.com | - - --+------
|-- Fishpool Creations Ltd - / |
+-------- = - - - = --------- /~setok/
Date: Wed, 5 Sep 2001 23:48:56 +0300 (EEST)
On Wed, 5 Sep 2001, Sheik Yussuff wrote:
> Consider the following program fragment:(Win 98 ver 0.85) where:
> 1. X has subclasses B and C
> 2. X has instproc m
> 3. object a mixes in {C B}
> 4. message p sent to object a(see code below)
>
> The code produces as answer:
> method p of A
> method m
> method m of A
>
> I expected:
> method p of A
> method m
> method m
> method m of A
I think your confusion is because class B and C both have the superclass
X, you expect method 'm' to be passed twice to class X. This is apparently
how C++ does it, and leads to substantial complexities in the
language. XOTcl never goes to the same superclass twice in method calls
(so if you increase an index in a super-class, you will be assured it wont
be increased twice by mistake!). I think this is explained rather well in
the XOTcl tutorial. At least it was when I read it through (a while back
now..).
- ---------- = = ---------//--+
| / Kristoffer Lawson | www.fishpool.fi|.com
+-> | setok_at_fishpool.com | - - --+------
|-- Fishpool Creations Ltd - / |
+-------- = - - - = --------- /~setok/