Re: function to resize a UML class object's extent?
- From: Cyrille Chepelov <chepelov calixo net>
- To: dia-list gnome org
- Subject: Re: function to resize a UML class object's extent?
- Date: Sat, 1 Dec 2001 11:42:18 +0100
Le ven, nov 30, 2001, à 01:06:35 -0600, Lars Clausen a écrit:
I was thinking of the vtable things, and AFAIR it doesn't really do
inheritance. If a sub'class' of Connection has a NULL in its vtable, it
doesn't mean the superclass's function gets called. Is there anything
prohibiting the class constructor from copying functions from the
superclass when the vtable has a NULL?
It's 100% manual ; you do what you want. Oh, I think I see what you really
mean:
typedef struct { .... } A_ops;
typedef struct { A_ops* ops; .... } A;
typedef struct { A_ops a_ops; .... } B_ops;
typedef struct { A a; .... } B;
static B_ops B_vtable = { { a_op1,
a_op2_overriden_by_b,
NULL, /* meaning, implicit a_op3 */
},
b_op1,
NULL, /* meaning, implicit b_op2 */
b_op3 };
void a_init(A* a) {
if (!(a->ops->op1)) a->ops->op1 = a_op1;
if (!(a->ops->op2)) a->ops->op2 = a_op2;
if (!(a->ops->op3)) a->ops->op3 = a_op3;
/* init of the A objet itself */
}
void b_init(B* b) {
A_ops* a_ops = &b->a.ops;
B_ops* b_ops = (B_ops*)a_ops;
A* a = &b->a;
a_init(a);
if (!b_ops->op1) b_ops->op1 = b_op1;
if (!b_ops->op2) b_ops->op2 = b_op1;
if (!b_ops->op3) b_ops->op3 = b_op1;
}
(of course, dia does things slightly differently)
I see nothing wrong with that (except a few nanoseconds at instance
construction). The day we allow C99 litterals, we'll be able to remove a lot
of clutter from the operations structures. However, how does this stuff
relate to GObject ? Isn't GObject supposed to provide these mechanisms
already ?
-- Cyrille
-Lars
--
Lars Clausen (http://shasta.cs.uiuc.edu/~lrclause)| Hårdgrim of Numenor
"I do not agree with a word that you say, but I |----------------------------
will defend to the death your right to say it." | Where are we going, and
--Evelyn Beatrice Hall paraphrasing Voltaire | what's with the handbasket?
_______________________________________________
Dia-list mailing list
Dia-list gnome org
http://mail.gnome.org/mailman/listinfo/dia-list
--
Grumpf.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]