iekompletny typ podczas inicjalizacji obiektu

0

hej witam wszystkich. mam pewien problem zwiazany z inicjalizacja obiektu.

mam taka oto klase:

class gaussjo 
{ 
      int rozmiar ; 

      double ** macierz ; 
      double ** macierz_A ; 
      double * macierz_B ; 
      
      public : 
              
             gaussjo(double ** M, int Roz) ; 

      
}; 
      
gaussjo :: gaussjo(double ** M, int Roz) 
{ 
       rozmiar = Roz ; 
        
       macierz_A = new double * [rozmiar] ;      // tworzenie tablicy wielowymiarowej 
       for(int i = 0; i < rozmiar; i++)           // macierzy wspolczynnikow !!!! 
       macierz_A[i] = new double [rozmiar] ; 
        
       macierz_B = new double [rozmiar]    ;    // tworzenie macierzy wynikow 
        
        
        
       int i = 0, j = 0 ; 
        
       for(i=0; i < rozmiar; i++) 
       {                
              for(j = 0; j < rozmiar; j ++) 
              {                                     // przypisanie 
                    macierz_A[i][j] = M[i][j];              
              } 
              
              macierz_B[i] = M[i][rozmiar] ;       // przypisanie do tablicy wynikow 
       }                                          // wynikow z kolumny "dodatkowej"  rownania*/ 
}

i chce stworzyc obiekt za pomoca instrukcji :

gaussjo f (macierz,rozmiar);

gdzie macierz jest double ** a rozmiar int.

wyswietla mi komunikat o bledzie w konstruktorze i ze obiekt zostal zainicjalizowany ale ma niekompletny typ. co to znaczy i jak temu zaradzic?

pozdr.

0

gaussjo f = gaussjo(macierz,rozmiar);

0

tak samo a nawet wiecej.

dalej niekompletnty tym a dodatkowo komunikat o nieprawidlowym uzyciu struktury gaussjo
w klasie w ktorej inicjalizuje ten obiekt.

0
macierz_B[i] = M[i][rozmiar] ;

Wychodzisz poza zakres tablicy.

0

raczej nie. ta macierz M jest tworzona w innym obiekcie i ma postac:

double macierz[rozmiar][ (rozmiar + 1) ] ;

a konkretniej ma takie wartosci:

       double tablica_temp[]={2, 8, 9, 7,  8,              
                              5, 8, 3, 9,  2,              
                              2, 7, 9, 4,  6,              
                              7, 2, 4, 9,  2, };

to co robie w tej petli to rozdzielam ostatnia kolumne z pozostala czescia tabeli na dwie inne tabele.

nie przekraczam zakresu - przynajmniej jezeli dobrze cie zrozumialem.

zakladam ze moze byc jakis blad przy przesylaniu argumetow do konstruktra.

0

ta macierz M jest tworzona w innym obiekcie [...]

Czyli, jak rozumiem jest tworzona tak samo jak macierz_A??? Z drugiej strony, jeżeli ta macierz M jest tworzona w innym obiekcie, to bezpieczniej będzie jak przekażesz ten "inny obiekt" do konstruktora gaussjo przez (const) referencję.

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