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

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

class prosta {
   public:

   prosta(int,int);
   prosta() {
      std::cout<<"Konstruktor obiektu klasy prosta bez parametrow \n";
      x = new int;
      y = new int;
            } //tu nowy konstruktor
   //konstruktor kopiujący – tu piszemy
   prosta(const prosta& _param)
     {
        std::cout<<"Konstruktor kopiujacy \n";
	    x=new int(*_param.x);
        y=new int(*_param.y);
     }
   // konstruktor przenoszący – tu zaczynamy pisanie
   prosta(prosta&& _param) :x(NULL), y(NULL)
   {
      std::cout<<"Konstruktor przenoszacy \n";
      x=_param.x;
      y=_param.y;
	  _param.x=NULL;
      _param.y=NULL;
   }


   ~prosta();
   int podajX();
   int podajY();
   
   private:
   int* x;
   int* y;
};

prosta tymczas()
{ 
   prosta p(20,30);
   return p;
}


prosta::prosta(int a,int b) {
   std::cout<<"Konstruktor obiektu klasy prosta\n";
   x = new int(a);
   y = new int(b);
}

prosta::~prosta() {
   std::cout<<"Destruktor obiektu klasy prosta\n";
   delete x;
   delete y;
}


int prosta::podajX() {
   return *x;
}

int prosta::podajY() {
   return *y;
}



int _tmain(int argc, _TCHAR* argv[])
{
   prosta obj1(tymczas());
   std::cout<<"Wartosci pol wsk: x="<<obj1.podajX()<<" y="<<obj1.podajY()<<"\n";
     
   _getch();


  



	return 0;
}

