Diskuze: pole abstraktnej triedy
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 3 zpráv z 3.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Nějak nevidím deklaraci toho pole abstraktních tříd, ale obecně se dá říci toto:
Musíš deklarovat pole ukazatelů (ať už raw, nebo skrzt. smart pointery) na tu abstraktní třídu. Jednak tím v podstatě zajistíš fungování polymorfismu (při alokaci na zásobníku virtuální metody nefungují), druhak tím vyřešíš inicializaci. Potom akorát každý prvek toho pole inicializuješ nějak takto:
pole[i] = new KonkretnejsiPotomekAbstraktniTridy(...);
Aha, ďakujejm a ako by som mal spraviť konštruktor pre to pole ak som si na to spravil vlastnu triedu Pole.h a keď robím Pole.cpp nechce mi to nič zobrať
A ešte neviem ako by som mal spraviť metodu pridajPrvokDoPola tak aby mi to vytváralo novú loptu a pridalo ju do pola ak na tom prvku ešte žiadna nie je
// trieda Pole.h
#pragma once
class Pole {
private:
int maxPocet = 10;
IObjekt *pole[10];
public:
Pole();
~Pole();
};
//trieda Pole.cpp
#include "Pole.h"
Pole::Pole()
{
}
Pole::~Pole()
{
}
Zobrazeno 3 zpráv z 3.