Is this actually valid code?
Steven Schveighoffer
schveiguy at yahoo.com
Mon Nov 7 04:37:52 PST 2011
On Sun, 06 Nov 2011 23:10:57 -0500, Andrej Mitrovic
<andrej.mitrovich at gmail.com> wrote:
> I've had a simple problem where I've only wanted to override a setter
> from a base class:
>
> class Foo
> {
> @property void test(int) {}
> @property int test() { return 1; }
> }
>
> class Bar : Foo
> {
> override @property void test(int) {}
> void bartest() { auto x = test; } // NG
> }
>
> test.d(19): Error: function test.Bar.test (int _param_0) is not
> callable using argument types ()
>
> So I thought I'd be clever:
>
> class Foo
> {
> @property void test(int) {}
> @property int test() { return 1; }
> }
>
> class Bar : Foo
> {
> alias super.test test;
> override @property void test(int) {}
> void bartest() { auto x = test; }
> }
>
> And it actually works! Is this a documented feature?
http://www.d-programming-language.org/function.html#function-inheritance
Look at the third example/description.
-Steve
More information about the Digitalmars-d-learn
mailing list