C++ konwersja programu na projekt wieloplikowy

Witam.Czy mógłby mi ktoś wytłumaczyć jak z działającego projektu jedno plikowego w którym znajduje sie deklaracja klasy ,metody jej realizacji oraz .sam program. zrobić projekt wieloplikowy :tj klasy ,metody i sam “program główny” w osobnych plikach…

#include 

#include 

#include 


using namespace std;

class liczbyulamkowe

{

      private:

int licz;

 int mian;

      public:

      liczbyulamkowe operator+( liczbyulamkowe a);//przeładowanie +

      liczbyulamkowe operator-( liczbyulamkowe a);//przeładowanie -

      liczbyulamkowe operator*( liczbyulamkowe a);//przeładowanie *

      liczbyulamkowe operator*( int a);//przeładowanie * przez liczbe zeczywistą

      friend ostream & operator<< (ostream &, liczbyulamkowe &);

      friend istream & operator>>(istream &, liczbyulamkowe &);

};



                     liczbyulamkowe liczbyulamkowe::operator+(liczbyulamkowe a)//przeładowanie +


                     {


                            liczbyulamkowe suma;

                            suma.licz = licz *a.mian + a.licz*mian;

                            suma.mian = mian * a.mian;


                            return suma;


                            }


                          liczbyulamkowe liczbyulamkowe::operator-(liczbyulamkowe a)//przeładowanie -


                     {


                            liczbyulamkowe suma;

                            suma.licz = licz *a.mian - a.licz*mian;

                            suma.mian = mian*a.mian;


                            return suma;


                            } 

                        liczbyulamkowe liczbyulamkowe::operator*(liczbyulamkowe a)//przeładowanie *


                     {


                            liczbyulamkowe suma;

                            suma.licz = licz * a.licz;

                            suma.mian = mian * a.mian;


                            return suma;


                            }  

                         liczbyulamkowe liczbyulamkowe::operator*(int a)//przeładowanie * rzeczywista


                     {


                            liczbyulamkowe suma;

                            suma.licz = licz * a;

                            suma.mian = mian;


                            return suma;


                            }  



 liczbyulamkowe pokaz;                        

ostream & operator<< (ostream & oko, liczbyulamkowe & pokaz) //przeciążony operator strumienia wyjscia


{


oko<
return oko; 	

}


istream & operator>>( istream & klik,liczbyulamkowe & pokaz)//przeciążony operator strumienia wejścia

{

        int o=0,p=1;

    // for(;o!=p;);

        {

  cout<<" licznik : " ;

  klik>>pokaz.licz ; 

     cout<<" mianownik : " ;

  klik>>pokaz.mian ;

  if(pokaz.mian==0) cout<<"mianownik nie moze być zerowy popraw ulamek";


   if(pokaz.mian<0) cout<<"mianownik nie moze być ujemny popraw ulamek";

  else p=0;

}

  return klik;           

}

int main(int argc, char *argv[])

{

   int b=0,li=0;

   int q=0,w=1;

    liczbyulamkowe pierwsza,druga,wynik;

    for(;q!=w;)

    {

    system("cls");

    cout<<"\n\n ************MENU GLUWNE************** \n\n\n";


    cout<<"wybierz operacje jakiej chcesz dokonać na ulamkach\n\n";

    cout<<"1 dodawanie\n2 odejmowanie\n3 mnozenie\n4 mnozenie przez liczbe rzeczywista\n";

    cout<<"5 zakoncz program\n";

    cin>>b;

     switch (b)

    {

             case 1:


         cout<<"\npodaj pierwszy ulamek\n";

         cin>>pierwsza;

         cout<<"\npodaj drugi ulamek\n";

         cin>>druga;


         cout<<"\n\ntwoja operaca to : "<
         wynik = pierwsza + druga;

         cout<<"wynik twojej operacji : "<
         getch(); break;



              case 2:


         cout<<"\npodaj pierwszy ulamek\n";

         cin>>pierwsza;

         cout<<"\npodaj drugi ulamek\n";

         cin>>druga;


         cout<<"\n\ntwoja operaca to : "<
         wynik = pierwsza - druga;

         cout<<"wynik twojej operacji : "<
          getch(); break;


               case 3:


         cout<<"\npodaj pierwszy ulamek\n";

         cin>>pierwsza;

         cout<<"\npodaj drugi ulamek\n";

         cin>>druga;


         cout<<"\n\ntwoja operaca to : "<
         wynik = pierwsza * druga;

         cout<<"wynik twojej operacji : "<
         getch(); break;



             case 4:

         cout<<"\npodaj ulamek\n";

         cin>>pierwsza;

         cout<<"\npodaj drugi ulamek\n";

         cin>>li;


         cout<<"\n\ntwoja operaca to : "<
         wynik = pierwsza * li;

         cout<<"wynik twojej operacji : "<
          getch(); break;



             case 5:


                  w=0;break;


             default:

           cout<<"zla opcja sprobuj ponownie";

           getch(); break;

           }// for q w


}


    system("PAUSE");

    return EXIT_SUCCESS; 

}

Dziękuje z góry za pomoc

Przerzuć klasę liczbyulamkowe oraz jej operatory zdefiniowane poza klasą do pliku .h a w głównym pliku zostaw includy i funkcje main().

PS: dlaczego klasa liczbyulamkowe nie ma konstruktiora?

Trafna uwaga z tym konstruktorem. Będę musiał trochę przebudować kod …A mam jeszcze jedno pytanie związane z tym projektem czy w pliku w którym jest klasa mogę umieścić

#include oraz

 using namespace std;

ponieważ mam problem z błędem ze

ostream

oraz

istream

ni są zadeklarowane … Pytam się ponieważ nie jestem przekonany czy to jest dozwolone/poprawne. dziekuje pozdrawiam

Możesz umieszczać. Nic się niestanie nawet jeśli będzie to któreś z kolei dołączenie tego samego pliku. Mają już wbudowaną ochronę przed tym.