Macierz i undefined reference

0

Cześć, mam program realizujący przy pomocy przeładowania operatorów operacje na macierzach.
Program jest już kompletny, da się kompilować tylko problem jest w tym, że do niektórych funkcji przeładowania operatorów nie mogę dodać const, a dla innych podobnych moge. Wyskakuje błąd linkera : "Undefined reference to Nazwa_tej_funkcji".
Może ktoś będzie wiedział o co chodzi.
W linku do pobrania projekt programu z devc++.
http://www.sendspace.pl/file/ddc2f15929386c3d518943e

0

A mógłbyś wkleić ten fragment kodu który ci sprawia problem i napisac o co chodzi? Nikt nie bedzie tu tego marnego deva instalował specjalnie dla ciebie ;]
Swoją drogą g++ -ansi -pedantic -Wall daje tylko jeden warning że masz gdzieś nieużywaną zmienną, a poza tym nie ma zastrzeżeń, wiec o co właściwie chodzi?

0

Ale nie wiem o który kawałek kodu chodzi, całego przecież nie wkleje. No ale tak:
Mam klasę "Macierz" i w tej klasie przeładowane operatory np:
Macierz operator-(Macierz &); - jak tak napisze to jest ok ale...
Macierz operator-(const Macierz &)const; - tak już nie moge bo [Linker error] Undefined reference to Macierz::operator-(Macierz&)

No i przecież nie musisz deva instalowac, mozesz w czym innym to otworzyc, przecież są pliki źródłowe i nagłówkowe tylko że dodatkowo jeszcze projekt akurat w dev.

A kompiluje sie bo napisałem bez tych constów, chodzi o to dlaczego z constami jest blad no i co zrobic zeby bylo mozna.

0

No to mów od razu.
Jak dodajesz te consty to musisz je dodać zarówno w definicji funkcji jak i w deklaracji.
Tzn musisz je dopisać i w pliku z klasą i w pliku z funkcjami.

0

Heh nie no aż takim noobem nie jestem, niestety to nie o to chodzi.

0

Niemożliwe.
Ale w takim razie wrzuć kod który ci sprawia taki problem a ja rzuce na niego okiem.

0

no ale pisałem, że nie wiem nawet co wklejać, a cały kod ściągnąłeś już z tego linka co podałem w 1 poście, tam w nagłówkowym macierz.h wyszczególniłem o które cztery funkcje chodzi.

0

No tak, bo ja nie mam co robic tylko zmieniać twój kod tak żeby przestał działać.
Jak wstawisz linka z całym kodem, tak jak wyżej, ale niedziałajacym, to zobaczę o co chodzi. Wykaż troche własnej inwencji...

0

Nie no niewierze.... Jak powstawiałem consty to w cudowny sposob nagle zadziałało. Przysięgam, że wcześniej to samo robiłem. Jedyne wytłumaczenie to chyba to, że jak wyszczególniałem te funkcje to przeniosłem je na koniec definicji klasy, po prostu zmieniłem kolejność deklaracji i widocznie o to chodziło.
A tak przy okazji to ciekawi mnie jedna sprawa. Czasami jak za pierwszym razem kompiluje projekt w dev to wychodzi linker error ale, jak od razu znowu skompiluje niczego nie zmieniając jest wszystko dobrze - i o co chodzi..
Dzieki Shalom za zainteresowanie sie tematem.

0

Dev ogólnie nie jest najlepszym z IDE ;)
Jako lekkie i proste w obsludze polecam Code::Blocks ;)

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