// PR_4_9.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>

class pierwsza
{

public:
   
   virtual void podaj()
   {
      std::cout<<"podaj z klasy pierwsza"<<std::endl;
   }
   void funP() 
   {
      std::cout<<"Metoda klasy bazowej"<<std::endl;
   }

};

class druga : public pierwsza
{
public:
   
   void podaj()
   {
      std::cout<<"podaj z klasy druga"<<std::endl;
   }
    void funD() 
    {
      std::cout<<"Metoda klasy pochodnej"<<std::endl;
   }

};


int _tmain(int argc, _TCHAR* argv[])
{
	pierwsza* pierwszaWsk;
    druga* drugaWsk;
      
    pierwsza pierwszaObj;
    druga drugaObj;

	pierwszaWsk=&pierwszaObj;
    drugaWsk=NULL;

	drugaWsk = static_cast<druga*>(pierwszaWsk);
    drugaWsk->funD();

	drugaWsk=NULL;

	drugaWsk = dynamic_cast<druga*>(pierwszaWsk);
   
     if (drugaWsk==NULL)
       std::cout<<"Pierwsza konwersja z dynamic_cast nieudana."<<std::endl;
     drugaWsk->funD();

	drugaWsk=NULL;
    pierwszaWsk=&drugaObj;

    drugaWsk = dynamic_cast<druga*>(pierwszaWsk);

    if (drugaWsk==NULL)
    std::cout<<"Druga konwersja z dynamic_cast nieudana."<<std::endl;

    drugaWsk->funD();
	system("pause");

	return 0;
}

