Use dynamic_cast to convert object pointer to its subclass : object pointer « Class « C++

Home
C++
1.Bitset
2.Class
3.Console
4.Data Structure
5.Data Type
6.Deque
7.Development
8.File
9.Function
10.Generic
11.Language
12.List
13.Map Multimap
14.Overload
15.Pointer
16.Qt
17.Queue Stack
18.Set Multiset
19.STL Algorithms Binary search
20.STL Algorithms Heap
21.STL Algorithms Helper
22.STL Algorithms Iterator
23.STL Algorithms Merge
24.STL Algorithms Min Max
25.STL Algorithms Modifying sequence operations
26.STL Algorithms Non modifying sequence operations
27.STL Algorithms Sorting
28.STL Basics
29.String
30.Valarray
31.Vector
C++ » Class » object pointer 




Use dynamic_cast to convert object pointer to its subclass
  
#include <typeinfo>
#include <iostream>
using namespace std;

class Base{
public:
  Base() {};
  virtual ~Base() {}
};

class Derived : public Base{
public:
  Derived() {}
  virtual ~Derived() {}
};

int main(int argc, char** argv){
  Base* b;
  Derived* d = new Derived();

  b = d;
  d = dynamic_cast<Derived*>(b);

  Base base;
  Derived derived;

  Base& br = base;

  try {
    Derived& dr = dynamic_cast<Derived&>(br);
  catch (bad_cast&) {
    cout << "Bad cast!\n";
  }

  return (0);
}
  
    
  














Related examples in the same category
1.Use object pointer to reference virtual method
2.Use & to get object address
3.Call virtual function through object pointer
4.Change the object pointer behaviour
5.Using an array of class objects
6.Need reinterpret cast to perform pointer conversion from unrelated classes
7.Need reinterpret_cast to go from pointer to int and from int to pointer
8.Need reinterpret cast to perform reference conversion from unrelated classes -- static_cast doesn't work
9.Declare object pointer
10.pointers to base class
11.Demonstrating the class member access operators . and ->
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.