Cześć, mam zadanie:
Zadeklaruj klasę, która posiada:
pole prywatne (typ int) przechowujące id obiektu (będzie łatwiej na wydruku zobaczyć, który obiekt jest gdzie).
konstruktor z jednym parametrem. Ustawia id obiektu na wartość z parametru, drukuje komunikat „Utworzono...” oraz id obiektu. destruktor. drukuje komunikat „Zniszczony...” oraz id obiektu.
W głównym kodzie zadeklaruj vector, elementy typu klasy powyżej. Wykonaj pętlę (np. 10 razy), w każdej iteracji:
funkcją push_back(...) dołóż do vectora nowy obiekt, parametrem (konstruktora obiektu) ma być nr wykonania pętli.
Wydrukuj na ekranie „--------\n” (aby optycznie oddzielić poszczególne iteracje pętli).
Zaobserwuj w jaki sposób zachowuje się vector podczas realokacji. Zobacz wyświetlane komunikaty. Policz (optycznie) destruktory. Masz pomysł co się właściwie stało?
to mój kod:
#include <iostream>
#include <cstring>
#include <vector>
using namespace std;
class cClass
{
private:
int id;
public:
cClass(int id)
{
this->id = id;
cout << "Utworzono... " << id << endl;
}
~cClass()
{
cout << "Zniszczono..." << id << endl;
}
};
void Zadanie4()
{
std::vector<cClass>wektor;
for(int i = 0; i<5; i++)
{
wektor.push_back(cClass(i));
cout << "-------\n";
}
}
int main()
{
cout << "Zadanie 4:\n";
Zadanie4();
}
wynik działania programu:
Zadanie 4:
Utworzono... 0
Zniszczono...0
Utworzono... 1
Zniszczono...0
Zniszczono...1
Utworzono... 2
Zniszczono...0
Zniszczono...1
Zniszczono...2
Utworzono... 3
Zniszczono...3
Utworzono... 4
Zniszczono...0
Zniszczono...1
Zniszczono...2
Zniszczono...3
Zniszczono...4
Zniszczono...0
Zniszczono...1
Zniszczono...2
Zniszczono...3
Zniszczono...4
nie rozumiem dlaczego przy każdej iteracji liczba wyświetleń "zniszczono" jest inna, mógłby ktoś pomoc mi to zrozumieć? Jeszcze z tym wyświetlaniem id, czy o to chodziło?