c++ casting problems

Deeko

Lifer
Jun 16, 2000
30,213
12
81
Ok, so lets say I have an object of a derived class, which I can then successfully cast as its base class using dynamic_cast. My problem is, how can I then cast that base class back to the derived class? I tried using dynamic_cast, static_cast, and reinterpret_cast, they all give me segmentation faults.
 

singh

Golden Member
Jul 5, 2001
1,449
0
0
Originally posted by: Deeko
Ok, so lets say I have an object of a derived class, which I can then successfully cast as its base class using dynamic_cast. My problem is, how can I then cast that base class back to the derived class? I tried using dynamic_cast, static_cast, and reinterpret_cast, they all give me segmentation faults.

1. You don't need a cast to convert a derived class pointer to a base class pointer.

2. Conversion from a base class to a derived class should only be done using dynamic_cast. However, you need to enable RTTI in order to have this feature at run-time. Do note that dynamic_cast can be expensive, though this would only be a concern if you're using it frequently enough.
 

Deeko

Lifer
Jun 16, 2000
30,213
12
81
I know, initially i just had
base *b = &derived
which worked fine, but i was messing around with the cast stuff to try to get the other one working.

How do I enable RTTI?

Thanks.
 

singh

Golden Member
Jul 5, 2001
1,449
0
0
Originally posted by: Deeko
How do I enable RTTI?

That's compiler dependent. Lookup the documentation (search for RTTI) to identify the relevant option.

 

Deeko

Lifer
Jun 16, 2000
30,213
12
81
From what I've been able to find, its turned on by default (gcc). Does this mean I shouldn't be getting this error?
 

singh

Golden Member
Jul 5, 2001
1,449
0
0
Originally posted by: Deeko
From what I've been able to find, its turned on by default (gcc). Does this mean I shouldn't be getting this error?

Maybe. Post a minimal complete working program that reproduces the segfault.
 

singh

Golden Member
Jul 5, 2001
1,449
0
0
Can you post a sample compilable program that demonstrates the problem?
 

oog

Golden Member
Feb 14, 2002
1,721
0
0
It would help to have a minimal complete (and compilable) program that produces your problem; however, my initial guess from looking at your code is that you assign "Message message = &tmp_msg;". The ampersand in front of tmp_msg means that you're getting the address of it. It doesn't make sense to assign that to something of type Message. You should be assigning it to something of type Message * (a pointer to a message). I suspect that after you get past this bad assignment, you try to use the message, but you're actually referencing some other part of memory than what you intended.
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |