[Bug 191] New: Cannot refer to member variable in default value for method parameter

BCS BCS at pathlink.com
Mon Jun 12 09:20:37 PDT 2006


Deewiant wrote:
> Jarrett Billingsley wrote:
> 
>>Is this even in the spec?  I had no idea you were supposed to be allowed to 
>>use members as default parameters. 
>>
> 
> 
> All I can find about default parameters in the spec is at the "Functions" page,
> where they pop out of the blue in the phrase "A function parameter's default
> value is not inherited", which is all that's said about them. The changelog for
> DMD 0.92 also says "Added default arguments to function parameters. Semantics
> are like C++." but that's it.
[...]

Is this correct behavior? If it is it needs to be documeted better.

<code>
import std.stdio;

class C		{ int foo(int x = 1){return x;} }
class D:C	{ int foo(int x = 2){return x;} }


void main()
{
	C c = new D;
	D d = cast(D)c;

	writef(c.foo,\n);	// prints 1 (?)
	writef(d.foo,\n);	// prints 2
}
</code>



More information about the Digitalmars-d-bugs mailing list