
#programowanie #cpp
Mirki, mam do Was ogromną prośbę.
Uczę się przeciążenia operatorów dodawania/mnożenia etc. dla wektorów (dyn. tab. 1W) i macierzy (dyn. tab. 2W). I mam pewien problem.
Gdy dodaję do siebie macierze, np.:
macierz mac3=mac1+mac2;
To macierz3 jest poprawna, ale 1 i 2 już nie (są identyczne jak 3).
Kod "bazowy" mam na podstawie przeciążeń i metod od wektora, który wcześniej robiłem i działa poprawnie. Kod macierzy pisałem 2x od nowa, przekopiowałem i zmieniałem z wektora, metody dałem na stałe, usuwałem bazowanie na oryginałach (&) itp. ale bezskutecznie.
Screen to ładnie przedstawia (dziwne cout'y w celu znalezienia przyczyny): http://i.imgur.com/RDP2bCM.jpg
Byłby ktoś w stanie pomóc? Ja już chyba ślepy jestem od tego,a potrzebowałbym mieć to naprawione najszybciej jak to możliwe.
Kod: http://pastebin.com/M9C2tFNU
P.S. Teraz zauważyłem, że jak np. pomnożę nowy wektor przez skalar (przeciążenie/metody także mam na podstawie wektora):
macierz mac4 = mac2 * liczba;
To wszystkie pozostałe instancje, mac1,2,3 również mają wartość mac4.
P.S.2. Jeśli mogę prosić, to nie zarzucajcie mi brak w kodzie jakichś wymyślnych, wydajnych funkcji typu z C++14, bo najpierw chciałbym ogarnąć "podstawy" bez dodatkowych rzeczy...
Z góry dziękuję i pozdrawiam :)
Mirki, mam do Was ogromną prośbę.
Uczę się przeciążenia operatorów dodawania/mnożenia etc. dla wektorów (dyn. tab. 1W) i macierzy (dyn. tab. 2W). I mam pewien problem.
Gdy dodaję do siebie macierze, np.:
macierz mac3=mac1+mac2;
To macierz3 jest poprawna, ale 1 i 2 już nie (są identyczne jak 3).
Kod "bazowy" mam na podstawie przeciążeń i metod od wektora, który wcześniej robiłem i działa poprawnie. Kod macierzy pisałem 2x od nowa, przekopiowałem i zmieniałem z wektora, metody dałem na stałe, usuwałem bazowanie na oryginałach (&) itp. ale bezskutecznie.
Screen to ładnie przedstawia (dziwne cout'y w celu znalezienia przyczyny): http://i.imgur.com/RDP2bCM.jpg
Byłby ktoś w stanie pomóc? Ja już chyba ślepy jestem od tego,a potrzebowałbym mieć to naprawione najszybciej jak to możliwe.
Kod: http://pastebin.com/M9C2tFNU
P.S. Teraz zauważyłem, że jak np. pomnożę nowy wektor przez skalar (przeciążenie/metody także mam na podstawie wektora):
macierz mac4 = mac2 * liczba;
To wszystkie pozostałe instancje, mac1,2,3 również mają wartość mac4.
P.S.2. Jeśli mogę prosić, to nie zarzucajcie mi brak w kodzie jakichś wymyślnych, wydajnych funkcji typu z C++14, bo najpierw chciałbym ogarnąć "podstawy" bez dodatkowych rzeczy...
Z góry dziękuję i pozdrawiam :)
- Najlepsze
- Wszystkie komentarze







@Atexor: Jak chcesz myśleć jak komputer to pisz w assembly (✌ ゚ ∀ ゚)☞
1.
Ogólnie to polecam używanie tablicy 1wymiarowej o wielkości szerokosc x wysokosc i przeliczanie indeksów "ręcznie" - wtedy nie ma niepotrzebnych wskaźników i odwoływania się do innych miejsc w pamięci -
3. Takie mam wymogi do stworzenia tego programu - "... Operatory mają wywoływać odpowiednie metody... ". Mimo,
Na razie czuję się, jakbym pisał w Prologu i aby to komputer myślał (nie daj RAMie) jak ja.