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