Cumulative
Steve Teale
steve.teale at britseyeview.com
Mon Feb 24 00:43:53 PST 2014
On Monday, 24 February 2014 at 08:41:06 UTC, Steve Teale wrote:
> 25 years ago, when I was trying to write some sort of library
> to go with Walter's C++ compiler, I had a wish, and it still
> pops into my head from time to time.
>
> What I wanted was functions that were declared in a base class
> as 'cumulative', or something similar. They would have been
> generally like virtual functions, except that any derived class
> that wanted to do something extra - as opposed to something
> different, would simply define an 'extend', and just specify
> the extra code. The compiler would then automatically add a
> call to the same function in whatever base class last defined
> or extended the method.
>
> extend void foo() // Declared in base class as cumulative
> void foo()
> {
> (cast(BaseClass) this).foo(); // Compiler does this for you
> // similar to changing a
> light bulb ;=)
>
> // the extra stuff
> }
>
> I think also that it might be necessary for the base class
> function to return on behalf of the derived method as opposed
> to to it.
>
> Does this make any sense?
>
> Steve
Sorry, I had two foo()s in the 'example'. What I meant was
extend void foo() // Declared in base class as cumulative
{
More information about the Digitalmars-d
mailing list