This is a simple test:
#include <iostream>
#include <vector>
using namespace std;
class C
{
public:
int _a;
C(int a) { cout << "constructor C: " << (_a = a) << endl; }
~C() { cout << "destructor C: "<< _a << endl; }
};
int main()
{
vector<C> vec;
for(int i=0; i<2; i++)
vec.push_back(i+1);
cout << "Go out --->\n";
return 0;
}
Output:
constructor C: 1
destructor C: 1
constructor C: 2
destructor C: 1
destructor C: 2
Go out --->
destructor C: 1
destructor C: 2
It looks not so funny when C is a real class with responsible destructor. Any suggestions? Thank you in advance.