Differing implementations for a function in two interfaces

Lionello Lunesu lio at lunesu.remove.com
Mon Apr 17 01:59:59 PDT 2006


Ryan Steen wrote:
> In article <e1vbp8$1lcq$1 at digitaldaemon.com>, Lionello Lunesu says...
> 
>> So the problem in the original post still applies to opIndex and opCall.
> 
> Only if the formal parameter lists stay the same. Is it a good design not to
> have typedef'ed subtypes for fieldnames and parameternames, rowindex and
> columnindex?
> 
> 

Nice idea!

#typedef uint field_no;
#typedef uint param_no;

#interface IA {
#	char[] opIndex(param_no);
#}

#interface IB {
#	char[] opIndex(field_no);
#}

#class C : IA, IB {
#	char[] opIndex(param_no p) { return "param"; }
#	char[] opIndex(field_no p) { return "field"; }
#}

#void main() {
#	C c = new C;
#	IA ia = cast(IA)c;
#	writefln( "ia[2]=",ia[2]);
#	IB ib = cast(IB)c;
#	writefln( "ib[2]=",ib[2]);
#}

Excellent, really... I think I'm in love...

L.



More information about the Digitalmars-d-learn mailing list