VectorDest.cc


#include <iostream>
#include <vector>
using namespace std;

class X {
    int p;
public:
    //constructor:
    X( int q ) { p = q; }
    //destructor:
    ~X() {                                                   //(A) 
        cout << "Destructor invoked for X object with p = "  
             << p << endl; 
    }
};

int main()
{
    vector<X> vec;                                           //(B)

    X x1( 1 );                                               //(C)
    X x2( 2 );                                               //(D)
    X x3( 3 );                                               //(E)

    vec.push_back( x1 );                                     //(F)
    vec.push_back( x2 );                                     //(G)
    vec.push_back( x3 );                                     //(H)

    return 0;
}


Results

C:\classes\ece538\work\kak05>VectorDest
Destructor invoked for X object with p = 1
Destructor invoked for X object with p = 1
Destructor invoked for X object with p = 2
Destructor invoked for X object with p = 1
Destructor invoked for X object with p = 2
Destructor invoked for X object with p = 3
Destructor invoked for X object with p = 3
Destructor invoked for X object with p = 2
Destructor invoked for X object with p = 1
Destructor invoked for X object with p = 1
Destructor invoked for X object with p = 2
Destructor invoked for X object with p = 3


Maintained by John Loomis, updated Sat Jan 06 21:44:18 2007