D - bug: overloaded function with same name as derived function
- mike.wynn l8night.co.uk (37/37) Jun 03 2002 Two things
- Matthew Wilson (4/41) Jun 05 2002 Agree on the separate bug group.
Two things can we have a new news group d.bugs for just compiler bug reporting and checking if issues are known bugs or required features. It appears, that if you overload a function that you have not overrided the compiler can not find it. in delphi there is the overload attribute, D has override (which I belive is optional) but no overload or explicit way to import from superclass as the compiler when overloading. you will see in the following code example. import c.stdio; class B { bit func() { return true; } // but works without problem bit spam() { return false; } } class D : /* public */ B // the public did not improve things, strange that was allowed! { int func( char[] name ) { return name.length; } // but this solves the problem :( // comment this out and this does not compile bit func() { return super.func(); } } int main( char[][] args ) { D d = new D(); if ( d.func() ) { return d.func( args[0] ); } if ( d.spam() ) { return args.length; } return 0; }
Jun 03 2002
Agree on the separate bug group. <mike.wynn l8night.co.uk> wrote in message news:adgn0d$2c15$1 digitaldaemon.com...Two things can we have a new news group d.bugs for just compiler bug reporting and checking if issues are known bugs or required features. It appears, that if you overload a function that you have not overrided the compiler can not find it. in delphi there is the overload attribute, D has override (which I beliveisoptional) but no overload or explicit way to import from superclass as the compiler when overloading. you will see in the following code example. import c.stdio; class B { bit func() { return true; } // but works without problem bit spam() { return false; } } class D : /* public */ B // the public did not improve things, strange that was allowed! { int func( char[] name ) { return name.length; } // but this solves the problem :( // comment this out and this does not compile bit func() { return super.func(); } } int main( char[][] args ) { D d = new D(); if ( d.func() ) { return d.func( args[0] ); } if ( d.spam() ) { return args.length; } return 0; }
Jun 05 2002