[ create a new paste ] login | about

Link: http://codepad.org/eslQDtgg    [ raw code | output | fork ]

k06a - C++, pasted on Oct 13:
#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];
}


Output:
1
2
3
4
5
6
7
8
9
10
11
12
Base Der
Base Der
Base Der
Base Der
Base Der
Base Der
~Der ~Base
~Der ~Base
~Der ~Base
~Der ~Base
~Der ~Base
~Der ~Base


Create a new paste based on this one


Comments: