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

błąd przypisania do tablicy

Ostatnio zmodyfikowano 2014-01-30 23:40
Autor Wiadomość
zkazany
Temat założony przez niniejszego użytkownika
błąd przypisania do tablicy
» 2014-01-30 22:48:48
Witam
const int rozm = 3;
samochod *org = new samochod[rozm];
dostawczy man(10.,2.);
org = &man;
osobowy opel(1.,1.);
org[1] = &opel;
osobowy audi(0.5,2.);
org[2] =&audi;

for(int i=0;i<rozm;i++){
org.info();
org.marka();
cout<<org.jedz()<<endl;
}

kompilator wywala bład [Error] no match for 'operator=' in '*(org + 24u) = & opel'
P-103653
Monika90
» 2014-01-30 23:24:16
org[ 1 ] = & opel;

Niezdefiniowane zachowanie - wskaźnik org wskazuje na pojedyńczy obiekt, nie na tablicę. Pomijam fakt że, to niezgodność typów, bo typem org[1] jest samochod, a nie samochod*
org[ 2 ] = & audi;

To samo.
A oprócz tego masz wyciek pamięci.
P-103656
zkazany
Temat założony przez niniejszego użytkownika
» 2014-01-30 23:34:53
czyli ten kod nie deklaruje tablicy??
samochod *org = new samochod[rozm];
P-103657
Monika90
» 2014-01-30 23:40:49
Ten kod deklaruje wskaźnik, tworzy tablicę dynamiczną i inicjalizuje wskaźnik adresem pierwszego elementu tej tablicy.

Za to ten kod
org = & man;
 mówi: zapomnij o tej tablicy, od teraz wskaźnik ma pokazywać na obiekt man.
P-103658
« 1 »
  Strona 1 z 1