T (int xx) { x=xx; cout<<"construct: "<<x<<endl; }


#include <iostream>


using namespace std;

class T

{

int x;

public:

    T (int xx)

     { x=xx; cout<<"construct: "<<x<<endl; }

};

int main()

{

    T t(100);

    return 0;

}



~T () {cout<<"destruct: "<<x<<endl;}

#include <iostream>

using namespace std;

class T

{

    int x;

     public:

     T (int xx) { x=xx; cout<<"construct: "<<x<<endl; }

~T ( ) { cout<<"destruct: " <<x<<endl; }

};

int main(int argc, char *argv[])

{

    T t(100);

    return 0;

}



构造函数 析构函数 执行顺序 T t1(100),t2(999),t3(9);

#include <iostream>

using namespace std;

class T

{    int x;

    public:

     T (int xx) { x=xx; cout<<"construct: "<<x<<endl;}

~ T ( ) { cout<<"destruct: "<<x<<endl; }

};

int main(int argc, char *argv[])

{

    T t1(100),t2(999),t3(9);

    return 0;

}


T t1(100),t2(999);  cout<<"**********\n";

#include <iostream>
using namespace std;
class T
{
    int x;
    public:
    
    T (int xx){x=xx;  cout<<"construct: "<<x<<endl;}     
              
    ~T ()   {cout<<"destruct: "<<x<<endl;}           

};
int main(int argc, char *argv[])                  
{
    T t1(100),t2(999);
    cout<<"**********\n";
    return 0;
}



T t1(100);   T t2(999); cout<<"**********\n";

#include <iostream>
using namespace std;
class T
{
    int x;
    public:
    T (int xx){x=xx;  cout<<"construct: "<<x<<endl;}               
    ~T ()   {cout<<"destruct: "<<x<<endl;}           //(四) 
};
int main(int argc, char *argv[])                  
{
    T t1(100);
    T t2(999);
    cout<<"**********\n";
    return 0;
}





括号改变 执行顺序 T t1(100); { T t2(999); } cout<<"**********\n";

#include <iostream>

using namespace std;

class T

{

    int x;

    public:

    T (int xx){x=xx; cout<<"construct: "<<x<<endl;}

~T () {cout<<"destruct: "<<x<<endl;}

};

int main(int argc, char *argv[])

{

    T t1(100);

{ T t2(999);}

    cout<<"**********\n";

    return 0;

}