class a{---------
---------};
int main(){
{a q,w,e;
}
}
doubt:in the above program object 'q' is created first then 'w' and later 'e' is created.
when cursor moves out of block in main in which 3 objects are created,destructor is called automatically and destroys objects in the reverse order in which they are created.that is 'e' is destroyed first then 'w' is destroyed and then 'q' is destroyed.
but how can we confirm that objects are destroyed in the reverse order in in which they are created??????
please write a program to confirm the above discussion.
#include <string>
#include <iostream>
usingnamespace std;
class a
{
private:
a (void) {} //ensure that a constructor with no parameters cannot be used
string _name;
public:
a (constchar * x) { cerr << x << endl; _name = x; }
a (string const& x) { cerr << x << endl; _name = x; }
~a (void) { cerr << '~' << _name << endl; }
};
int main (void)
{
{
a q("Q"), w("W"), e("E");
}
}