D - Is it a normal behaviour ?
- DeadCow (21/21) Aug 27 2003 class A {}
class A {}
class B : A {}
class C : B {}
void foo( A a ) { printf("A");}
void foo( B b ) { printf("B");}
void foo( C c ) { printf("C");}
void main() {
A a = new C();
foo( a );
}
It outputs "A"
Im wondering if it cannot be improved: all possible subclasses of A are
known, so can the compiler find out wich implementation of foo suits better
and replace foo( a ) by something like :
switch( a.class ) {
case A : foo( (A)a );
case B : foo( (B)a );
case C : foo( (C)a );
}
Just a thougth ( probably a stupid one ).
-- Nicolas Repiquet
Aug 27 2003








"DeadCow" <deadcow-remove-this free.fr>