Problem z dodawaniem macierzy

0
    system("cls");
    char p1[10],p2[10];
    int c1,c2;
    lista.WypiszListe(); // wyswietla liste
    do{
    cout<<"Podaj numer pierwszej macierzy z ktorej chcesz skorzystac. \n";
    cin>>p1;
    c1 = atoi(p1);
    if(c1 == 0)
    {
        cout<<"Na liscie nie ma macierzy o takim numerze.\nSprobuj ponownie...";
        Sleep(1500);
    }
    else
    break;
    }while(!(atoi(p1)));
    do{
    cout<<"Podaj numer drugiej macierzy z ktorej chcesz skorzystac. \n";
    cin>>p2;
    c2 = atoi(p2);
    if(c2 == 0)
    {
        cout<<"Na liscie nie ma macierzy o takim numerze.\nSprobuj ponownie...\n";
        Sleep(1500);
    }
    else
    break;
    }while(!(atoi(p2))); // atoi sluza do zabezpieczenia przed wcisnieciem zlego klawisza.
    lista.ZnajdzWybrana(c1)+lista.ZnajdzWybrana(c2); // metoda zwraca obiekt znajdujacy sie na liscie
//    lista.DodajNaKoniec();

Mam program operacje na macierzach, przeladowane operatory itd., lista.ZnajdzWybrana(c1) zwraca wskaznik na obiekt i teraz zaczyna sie moj problem.

Chcialbym zrobic tak aby mozna bylo dodac 2 macierze do siebie, zwrocic to jaka nowa macierz, a ta nowa macierz wrzucic na koniec listy.

lista.dodajnakoniec(stala klasy matrix&) przyjmuje jako parametr adres obiektu klasy macierzowej.

Jestem poczatkujacym programista, piszę od 2 miesięcy, w razie błędów przepraszam.

1

lista.DodajNaKoniec(lista.ZnajdzWybrana(c1)+lista.ZnajdzWybrana(c2));

z tym że powinieneś przeładować operatory aby wyglądało to następująco:
lista<<(lista[c1]+lista[c2]);

0

ok spróbuje przeładować operator << dla listy,

a to lista [c1] to tez jest przeladowany operator [].

Wiem ciezko cos wytlumaczyc poczatkujacemy.

0

lista.DodajNaKoniec(lista.ZnajdzWybrana(c1)+lista.ZnajdzWybrana(c2));

Zrobiłem tak i pokazało mi taki magiczny bład.

In function 'void Dodawanie()':
main.cpp error: no matching function for call to 'ListaMacierzy::DodajNaKoniec(cMatrix)'|
ListaMacierzy.h note: candidates are: void ListaMacierzy::DodajNaKoniec(cMatrix&)|
||=== Build finished: 1 errors, 0 warnings ===|

0

void ListaMacierzy::DodajNaKoniec(const cMatrix&)

0

ok to działa, lecz na liste wrzuca mi jakies bzdury :/ jako macierz wynikowa.

2ga sprawa.
Mam przeładowany operator + i zabezpieczenie, że jak rozmiary macierzy są różne to nie można ich dodać zwraca komunikat, lecz przy działaniu programu program się po prostu zawiesza :/

0

wszystkie magiczne kulę się pokończyły. Więc Ci nie wywróżę, dlaczego masz błąd (i gdzie). Pokaż kod.
Dodatkowo polecam zapoznać się z debuggerem.

0

W załączniku dałem pliki źródłowe.

0

To co ktoś ma jakiś pomysł dlaczego jakieś bzdury mi wpisuje ? :/

0

Wklej kod na forum, bo nie każdy chce: ściągać RAR'a, rozpakowywać, otwierać w IDE, składać do projektu.

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