Klasy c++ problem z kompilacja

Witam mam taki problem z moim programikiem otóż mam takie polecenie.

Zestaw 1.

Utwórz klasę o nazwie Liczba z jednym polem typu całkowitego.

Do tak zdefiniowanej klasy dodaj konstruktor jednoargumentowy oraz metodę wyświetlającą

składową swojej klasy.

Następnie do klasy Liczba dodaj dwie metody:

a) stałą, dodającą dwa obiekty reprezentujące klasę Liczba i zwracającą w wyniku sumę tzn.

obiekt klasy Liczba,

b) niestałą, dodającą dwa obiekty reprezentujące klasę Liczba, w rezultacie modyfikującą

obiekt na rzecz, którego metoda będzie wywoływana.

Napisz program, w którym zostaną zaprezentowane wyniki pracy składowych klasy Liczba.

Zakładając, Ŝe w klasie Liczba została zdefiniowana metoda realizująca punkt b) o nazwie

dodaj. Napisz czy linie poniŜej zostaną wykonane:

Liczba A(6);

A.dodaj(3);

no i mój programik.

#include 


class liczba

{

      private:

      int x;


      public:

      liczba(int);

      void wyswietl();

      void dodaj(int);

};


void wyswietl(const liczba&);


using namespace std;

int main()

{

    liczba A(5);

    A.wyswietl();


    A.dodaj(3);

    A.wyswietl();


    system ("pause");

}


liczba::liczba (int arg)

{

   x=arg;

}


void liczba::wyswietl()

{

   cout<
}


void liczba::dodaj(int arg)

{

   x=x+arg;

}

Wszystko działa ładnie pięknie ale funkcja dodaj to oczywiście rozwiązanie podpunktu b) Próbuje zrobić podpunkt a) analogicznie i tu już zaczynają mi się schody. Mianowicie program widzę tak:

#include 


class liczba

{

      private:

      int x;


      public:

      liczba(int);

      void wyswietl();

      void dodaj(int);

      int dodaj(int);

};

void wyswietl(const liczba&);


using namespace std;

int main()

{

    liczba A(5);

    A.wyswietl();


    liczba B(10);

    A.dodaj(B);


    A.dodaj(3);

    A.wyswietl();


    system ("pause");

}


liczba::liczba (int arg)

{

   x=arg;

}


void liczba::wyswietl()

{

   cout<
}


void liczba::dodaj(int arg)

{

   x=x+arg;

}


liczba::dodaj(int arg)

{

   return x=x+arg;

}

Oczywiście program się nie kompiluje. I tu właśnie kończą się moje pomysły na dokończenie tego programu. Jeśli ogarniacie to i wiecie jak to poprawić bardzo proszę o pomoc. Siedzę już przy tym kilka godzinek i już mam od tego mętlik w głowie :). Z góry ogromne dzięki

Przeczytałeś zanim-cokolwiek-napiszesz-przeczytaj-ten-temat-t152275.html ?

Kod wklejaj wewnątrz tagu code, formatuj go aby był czytelny, podaj komunikaty błędów.

Masz niepasujące prototypy funkcji dodaj, deklarujesz int(int), a definiujesz void(int)

Ok poprawione. Zawitałem tu pierwszy raz wiec nie za bardzo wiedziałem jak to wrzucić. A mógł byś mi coś więcej na ten temat powiedzieć. Wiem że to prośba o pójście na łatwizne ale mógł byś mi go poprawić tak aby on działał ? Dla ciebie to pewnie rach ciach a dla mnie zaoszczędzenie cennych godzin na wyspanie się do egzaminu. Jutro jak tego nie przyniosę nie będę mógł pisać egzaminu.

Wybacz, nieco wprowadziłem w błąd, ale pierwotny kod był pomieszany i średnio czytelny. W drugim kodzie który zamieściłeś masz 2 deklaracje metody dodaj(int) - musisz się na którąś zdecydować. Ponadto musisz jawnie określić typ zwracany z metody, więc nie “liczba::dodaj(int arg)” a “TYP_ZWRACANY liczba::dodaj(int arg)”

Ponadto nie załączasz nagłówka dla funkcji system. Ale też jej użycie jest bezsensowne, nieprzenośne - ogólnie bardzo złe obejście “problemu” zamykającego się terminala.

W zadaniu napisano o metodzie stałej, czyli dla punktu a:

liczba dodaj(const liczba &a,const liczba &b)const;