+ 1
Is there a way to avoid crash when static cast is used
Hi Refer code below: https://www.sololearn.com/compiler-playground/cZGbHJVaI9b2 Question is related to static_cast... Refer function called Test4. Code line derived* pd = static_cast<derived*>(pb); is trying to convert base class pointer to derived class pointer where base class pointer pb was holding reference of base object So this cast is failed as I have used static_cast.... Now If i am trying to uncomment the code line pd->display1();, it obviously crashes. I know I should be using dynamic_cast, but is there a chance to avoid such crash without using costly dynamic cast? https://code.sololearn.com/cZGbHJVaI9b2/?ref=app
5 Antworten
+ 2
I can't click the link in your post. It doesn't seem like a code URL as well, so could you re-post the link to the code.
+ 1
https://code.sololearn.com/cZGbHJVaI9b2
but It doesn't crash for me !?
anyway to same class pointer(up/down cast) you must use dynamic_cast and to see if cast was successful you can check if the pointer isnt nullptr
+ 1
Prashanth Kumar thanks
I have also updated question text to attach code
Just uncomment line 90 and it will crash....
0
Ketan Lalcheta
To downcast you must use dynamic_cast
not static_cast
line 85
0
I am already using dynamic cast in test5 function...
I just wanted to check is there a way to avoid atleast crash if static cast is used ? Or no way at all or any tweak and it is bound to crash