#!/bin/sh
# the next line restarts using the interpreter \
exec tclsh "$0" "$@"

set rcsId {$Id: demo,v 1.6 1997/05/31 22:44:49 jfontain Exp $}

if {[catch {package require stooop 3.0}]} {
    # in case stooop package is not installed
    source stooop.tcl
}
namespace import stooop::*

class base {
    proc base {this p} {
        set base::($this,m) $p
    }
    proc ~base {this} {}
    virtual proc print {this} {
        puts "Hi! I'm a base with member data:"
        puts $base::($this,m)
    }
}

class derived {
    proc derived {this p q} base {$p} {
        set derived::($this,q) $q
    }
    proc ~derived {this} {}
    proc print {this} {
        puts "Hi! I'm a derived with member data:"
        puts $base::($this,m)
        puts $derived::($this,q)
    }
}

set object [new derived 0 1]
base::print $object
delete $object
