VectorDestOrder.cc


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

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

int main()
{
    vector<X> vec;
 
    X x1( 1 );
    X x2( 2 );
    X x3( 3 );

    vec.push_back( x1 );
    vec.push_back( x2 );
    vec.push_back( x3 );

    x1.changeState(100);
    x2.changeState(200);
    x3.changeState(300);

    return 0;
}


Results

C:\classes\ece538\work\kak05>VectorDestOrder
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 = 300
Destructor invoked for X object with p = 200
Destructor invoked for X object with p = 100
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:50:37 2007