Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Metoda - zwracanie wartosci

Ostatnio zmodyfikowano 2015-03-22 19:44
Autor Wiadomość
dek12
Temat założony przez niniejszego użytkownika
Metoda - zwracanie wartosci
» 2015-03-22 19:38:23
Cześć, mam takie pytanko, robię klasę obsługującą macierze i taką mam małą zagwozdkę.

C/C++
double liczWyznacznik()
{
    // jeśli macierz nie jest kwadratowe
    if( N != M )
    {
        return 0;
    }
    else if( N == M )
    {
        //liczenie wyznacznika
        return wyznacznik;
    }
   
}

i w innym miejscu wywoluje
C/C++
cout << macierz.liczWyznacznik();

jak w takim przypadku pozbyć się tego, żeby nie wypisywał tego 0 zwróconego przez metodę. Jak zaprojektować klasę aby w przypadku macierzy niekwadratowej nie przekazywalo żadnej wartości do innych części kodu?

Wiem, że mogę dać
C/C++
if( liczWyznacznik() )
cout...
ale jako można to rozwiązać w samej klasie?
P-128964
pekfos
» 2015-03-22 19:44:25
Możesz zapisać do zmiennej i sprawdzać wartość, przed zrobieniem czegoś z nią. Ale i z kwadratowej macierzy możesz uzyskać zerowy wyznacznik, więc to słabe rozwiązanie. Lepiej mieć klasę (pochodną?) tylko do macierzy kwadratowych i tam udostępniać liczenie wyznacznika, lub mieć klasę do macierzy w ogóle i wyrzucać wyjątek (lub asercję) przy próbie obliczenia wyników niemożliwych operacji (i mieć dodatkową metodę do wcześniejszego sprawdzenia, czy macierz jest kwadratowa).
P-128965
« 1 »
  Strona 1 z 1