Jak korzystać z klasy - stosu w dwóch plikach .cpp

0

Witam
Mam taki problem z kodem moim.
Mam klasę (Stos), którą wykorzystuję jako stos. W klasie są funkcje pop, push (pobieranie i dodawanie elementów na stos). W jednym pliku .cpp, konkretnie w mainie chce dodawać elementy na stos. Tzn najpierw tworzę sobie stos:

Stos Pamiec;

a następnie dodaję elementy pushem do tego stosu:

Pamiec.push(wynik);

Tutaj wszystko działa ok, problem pojawia się, gdy chcę pobierać element ze stosu w innym pliku .cpp. Gdy wywołuję w tym innym pliku

Pamiec.pop();

mam podkreślone Pamiec i jak na to 'najadę' kursorem mam komunikat:

Error: identifier "Pamiec" is undefined.

Jest to jasne, nie widzi tego tworzenia Stos Pamiec w mainie. Próbowałem stworzyć plik .h i w nim umieścić tylko

Stos Pamiec;

i zaincludowac do obu plików .cpp czyli main i drugiego.
Wtedy już w drugim .cpp nie podkreśla nic, ale kompilacja się nie udaje i mam takie błędy:

Błąd 1 error LNK2005: "class Stos Pamiec" (?Pamiec@@3VPamiec@@A) already defined in main.obj C:\Users...\documents\visual studio 2010\Projects\calc\calc\zamien.obj

i

Błąd 2 error LNK1169: one or more multiply defined symbols found C:\Users...\documents\visual studio 2010\Projects\calc\Debug\calc.exe

Jeżeli includuje to tylko w mainie, a w drugim nie wykorzystuje popa nie ma problemu z dodaniem elementu na stos.
Jak można inaczej to rozwiązać?

0

Poczytaj o zasiegu zmiennych w c++. Jest kilka mozliwosci zadeklarowania tak zmiennej zeby byla widziana miedzy plikami. Jedna z nich jest extern.

0

dzięki za pomoc, działa! ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1