Class casting

Justin Miller millerj@wam.umd.edu
Wed Jul 2 16:36:00 GMT 2003


Interestingly enough, if you did this:

int main() {
        B b;
        C* c = new C(b);
}

It will compile and work as expected. The constructor wants an A, a B is
an A, so everything is fine.

Why one needs to declare the B first, rather than instantiating the
temporary as in the code below, I have no idea. Can anyone shed some
light on this?

Justin

On Wed, 2003-07-02 at 12:09, Greg Davey wrote:
...
> int main(){
>     C* c = new C(B()); 
>     c->doOtherStuff();
>     return 0;
> }
> 




More information about the Gcc-help mailing list