Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!cbosgd!ihnp4!alberta!calgary!lomow From: lomow@calgary.UUCP Newsgroups: comp.lang.misc Subject: Re: THIS virtual SIMULA question Message-ID: <1234@vaxb.calgary.UUCP> Date: Tue, 1-Dec-87 11:26:39 EST Article-I.D.: vaxb.1234 Posted: Tue Dec 1 11:26:39 1987 Date-Received: Sat, 5-Dec-87 08:39:23 EST References: <20919@brunix.UUCP> Organization: U. of Calgary, Calgary, Ab. Lines: 47 COMMENT I compiled and ran the following program (had to add some semi-colons and replaced the prints by outtext/outimage) and it produced the following output ORIGINAL REDEFINED REDEFINED REDEFINED This is consistent with my understanding of the Simula 67 Common Base which says (and I don't quote because the quote is quite meaningless) that if you redefine a virtual quantity, then only outermost definition is accessible and any other definitions of that quantity are inaccessible. END COMMENT; begin class A; virtual : procedure X; begin procedure X; begin outtext("ORIGINAL"); outimage; end; comment execute the procedure; THIS A.X; inner; end; A class B; begin procedure X; begin outtext("REDEFINED"); outimage; end; comment try to run both procedures; THIS A.X; THIS B.X; end; comment try them out; new A; new B; comment will probably print ORIGINAL, ORIGINAL, ORIGINAL, REDEFINED; end -- Greg Lomow lomow@cpsc.calgary.cdn or ....![ubc-vision,ihnp4]!alberta!calgary!lomow