This is the mail archive of the
guile@sourceware.cygnus.com
mailing list for the Guile project.
Re: GOOPS: inherit method
- To: Sascha Ziemann <szi at aibon dot ping dot de>
- Subject: Re: GOOPS: inherit method
- From: Mikael Djurfeldt <mdj at mdj dot nada dot kth dot se>
- Date: 13 Mar 2000 12:20:44 +0100
- Cc: guile at sourceware dot cygnus dot com
- Cc: djurfeldt at nada dot kth dot se
- References: <7u3dpvglz6.fsf@olivia.aibon.ping.de>
Sascha Ziemann <szi@aibon.ping.de> writes:
> (define-method str ((obj <1D>))
> (number->string (slot-ref obj 'x)))
[...]
> (define-method str ((obj <2D>))
> (string-append "{"
> (str (change-class (shallow-clone obj) <1D>))
> ";"
> (number->string (slot-ref obj 'y))
> "}"))
There is currently no way of calling a method for a specified
superclass of an object (although this is possible to implement), but
you can do:
(define-method str ((obj <2D>))
(string-append "{"
(next-method obj)
";"
(number->string (slot-ref obj 'y))
"}"))
An alternative solution is
(define-method 1D-str ((obj <1D>))
(number->string (slot-ref obj 'x)))
(define-method str ((obj <1D>))
(1D-str obj))
(define-method str ((obj <2D>))
(string-append "{"
(1D-str obj)
";"
(number->string (slot-ref obj 'y))
"}"))