Implicit conversion from class in parent class fails?
    Namespace 
    rswhite4 at googlemail.com
       
    Sat Jun 16 11:52:33 PDT 2012
    
    
  
Why work this:
[code]
class Foo { }
class Bar : Foo { }
class Quatz : Bar { }
void foo(Foo f) {
}
void main() {
	Foo f = new Foo();
	Foo f2;
	
	foo(f);
	foo(f2);
	
	Bar b = new Bar();
	Bar b2;
	
	foo(b);
	foo(b2);
	
	Quatz q = new Quatz();
	Quatz q2;
	
	foo(q);
	foo(q2);
}
[/code]
but not:
[code]
import std.stdio;
class Foo { }
class Bar : Foo { }
class Quatz : Bar { }
void bar(Foo[] fs) {
}
void main() {
	Foo[] fs = [new Foo()];
	Foo[] fs2;
	
	bar(fs);
	bar(fs2);
	
	Bar[] bs = [new Bar()];
	Bar[] bs2;
	
	bar(bs);
	bar(bs2);
	
	Quatz[] qs = [new Quatz()];
	Quatz[] qs2;
	
	bar(qs);
	bar(qs2);
}
[/code]
I think that should work also.
    
    
More information about the Digitalmars-d-learn
mailing list