https://godbolt.org/z/orj7P4ToP
Coś mnie podkusiło aby dopisać do konstruktora i destruktora "std::cout << " !
Tak bez kompilatora to bym powiedział że będzie 3 konstruktory i trzy destruktory
A wychodzi trochę inaczej
Dlaczego destruktorów jest więcej niż konstruktorów ?
wyjście z aplikacji :
main BEGIN:
SeriesPlus CONSTRUKTOR
SeriesPlus CONSTRUKTOR
SeriesPlus DESTRUKTOR property=321
SeriesPlus CONSTRUKTOR
SeriesPlus DESTRUKTOR property=321
SeriesPlus DESTRUKTOR property=4321
Vector:
series.property=321
series.property=4321
series.property=5321
main END:
SeriesPlus DESTRUKTOR property=321
SeriesPlus DESTRUKTOR property=4321
SeriesPlus DESTRUKTOR property=5321
#include <cstdio>
#include <vector>
#include <iostream>
#include <vector>
class SeriesPlus
{
public:
int property{0};
SeriesPlus()
{
property = 123;
std::cout << " SeriesPlus CONSTRUKTOR\n";
}
~SeriesPlus()
{
std::cout << " SeriesPlus DESTRUKTOR property="<<property<< "\n";
}
};
int main()
{
std::cout << "main BEGIN:\n";
std::vector<SeriesPlus> series;
// tak to chyba tylko GCC
// SeriesPlus &s1 = series.emplace_back();
// SeriesPlus &s2 = series.emplace_back();
// SeriesPlus &s3 = series.emplace_back();
series.emplace_back();
series.back().property = 321;
series.emplace_back();
series.back().property = 4321;
series.emplace_back();
series.back().property = 5321;
std::cout << "Vector:\n";
for (auto &x: series)
std::cout << " series.property=" << x.property << "\n";
std::cout << "main END:\n";
}