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ć?