A不析构
#include <iostream>
using namespace std;
class A
{
public:
A()
{ cout<<"A->";}
};
class B
{
public:
B()
{ cout<<"B->";}
};
class C
{
public:
C()
{ cout<<"C->";}
};
void func()
{
cout<<"\nfunc:";
A a;
static B b;//B静态
C c;
}
int main(int argc, char *argv[])
{
cout<<"main: ";
for(int i=1;i<=2;++i)
{
for(int j=1;j<=2;++j)
if(i==2)
C c;
else
A a;
B b;
}
func();
func();
return 0;
}
输出
main: A->A->B->C->C->B->
func:A->B->C->
func:A->C->请按任意键继续. . .
A 析构
#include <iostream>
using namespace std;
class A
{
public:
A()
{ cout<<"A->";}
~A()
{
}
};
class B
{
public:
B()
{ cout<<"B->";}
};
class C
{
public:
C()
{ cout<<"C->";}
};
void func()
{
cout<<"\nfunc:";
A a;
static B b;
C c;
}
int main(int argc, char *argv[])
{
cout<<"main: ";
for(int i=1;i<=2;++i)
{
for(int j=1;j<=2;++j)
if(i==2)
C c;
else
A a;
B b;
}
func();
func();
return 0;
}片
main: A->A->B->C->C->B->
func:A->B->C->
func:A->C->请按任意键继续. . .
B不用静态
#include <iostream>
using namespace std;
class A
{
public:
A()
{ cout<<"A->";}
~A()
{
}
};
class B
{
public:
B()
{ cout<<"B->";}
};
class C
{
public:
C()
{ cout<<"C->";}
};
void func()
{
cout<<"\nfunc:";
A a;
B b;
C c;
}
int main(int argc, char *argv[])
{
cout<<"main: ";
for(int i=1;i<=2;++i)
{
for(int j=1;j<=2;++j)
if(i==2)
C c;
else
A a;
B b;
}
func();
func();
return 0;
}
main: A->A->B->C->C->B->
func:A->B->C->
func:A->B->C->请按任意键继续. . .