Advertisement
yorath

temp

Oct 13th, 2013
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.59 KB | None | 0 0
  1. #include <boost/shared_ptr.hpp>
  2. #include <iostream>
  3.  
  4. class Base {
  5.  
  6. };
  7. typedef boost::shared_ptr<Base> BasePtr;
  8.  
  9. class DerivedA: public Base {
  10.  
  11. };
  12. typedef boost::shared_ptr<DerivedA> DerivedAPtr;
  13.  
  14. class DerivedB: public Base {
  15.  
  16. };
  17. typedef boost::shared_ptr<DerivedB> DerivedBPtr;
  18.  
  19. int main() {
  20.   BasePtr ptr = BasePtr(new DerivedA);
  21.   if (typeid(ptr.get()) == typeid(DerivedA *)) {
  22.     std::cout << "DerivedA";
  23.   } else if (typeid(ptr.get()) == typeid(Base *)) {
  24.     std::cout << "Base";
  25.   } else if (typeid(ptr.get()) == typeid(DerivedB *)) {
  26.     std::cout << "DerivedB";
  27.   }
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement