Wpis z mikrobloga

Podczas dynamicznego tworzenia tablicy referencji do obiektu tworzy się jednocześnie obiekty danej klasy, czy trzeba je osobno znacjonalizować? Chodzi o to, żeby później móc przypisać do odpowiednich miejsc tablicy kilka obiektów danej klasy i kilka klasy dziedziczącej. W uproszczeniu tablica z kilkoma obiektami klasy Bron i kilkoma obiektami klasy dziedziczącej np. M16.

#programowanie #cpp #pytanie
  • 12
@JBFC: tak się teraz tłumaczysz! ( ͡° ͜ʖ ͡°)

Anyway, nie znam się na c++, ale generalnie chyba jak tworzysz coś na kształt Weapon **weapons, to musisz ręcznie utworzyć obiekty pod odpowiednimi adresami.
@m_bielawski: da się to pyknąć jakoś w jednej linijce? Dajmy na to stworzenie tablicy wskaźników do danej klasy bazowej i potem z góry naraz przypisanie razem z utworzeniem obiektów.
Bron *tablicabroni = new Bron[valuei];
tablicabroni[0] = M16A4;
tablica
broni[1] = AK47;
itd, ale żeby przy przypisywaniu tworzyło już obiekty danego typu.
Dajmy na to
tablica_broni[0] = Bron M16A4(true, 22, 23, 24, 120);
wywala błąd, a chodzi mi o
@m_bielawski: a czekaj, czekaj, widzę. Źle walnąłem kod na szybko, bo to tylko przykład. Przy tablica_broni[0] = new M16A4(true, 22, 23, 24, 120); wyrzuca błąd konwersji M16A4 na int i czepia się o przeciążony operator znaku równości w klasie Bron xD
dynamicznego tworzenia tablicy referencji

tablicy kilka obiektów danej klasy i kilka klasy dziedziczącej

@JBFC: zakładam, że masz doświadczenie w jakimś innym języku. Wygląda na to, ze chcesz mieć po protu polimorficzny kontener.

Możesz zrobić sobie dynamiczną tablicę wskaźników na klasę bazową i potem pod wybranymi indeksami utworzyć przez np. new obiekty. Zamiast surowej tablicy możesz użyć lepiej std::vector> - będziesz miał automatyczne zarządzenie pamięcią (tworzenie przez make_unique, a usunie się
@kuhar: Zrozumiałeś mnie jak nikt inny iiiii DZIAŁA ( ͡° ͜ʖ ͡°)
Teraz problem występuje przy użyciu konstruktora parametrycznego(przy takim tworzeniu używa domyślnego), ale myślę, że zaraz ogarnę.
W innym języku nie pisałem, aktualnie kokszę na laboratoria z programowania obiektowego obejmującego c++.