#include <iostream>
#include <vector>
using namespace std;
struct Base
{
Base() { cout << "Base" << " "; }
virtual ~Base() { cout << "~Base" << endl; }
int i;
};
struct Der : virtual public Base
{
Der() { cout << "Der" << endl; }
~Der() { cout << "~Der" << " "; }
int it[10]; // sizeof(Base) != sizeof(Der)
};
int main()
{
Base *bp = new Der;
std::vector<Base *> bq;
for (int i = 0; i < 5; i++)
bq.push_back(new Der());
delete bp;
for(size_t i = 0; i < bq.size(); i++)
delete bq[i];
}