关于一个析构函数的问题
大家好,请问下面的程序,为什么会出现两个析构函数,第一个析构是如何产生的,谢谢!
环境vc6,
#include <iostream>
using namespace std;
class A
{
public:
A(){cout<<"A constructor"<<endl;}
~A(){cout<<"A destructor"<<endl;}
};
class B
{
public:
B(){cout<<"B constructor"<<endl;}
B(A refA){cout<<"B conversion constructor"<<endl;}
~B(){cout<<"B destructor"<<endl;}
};
void foo(B b1)
{
cout<<"foo is called"<<endl;
}
int main()
{
A refA;
foo(refA);
return 1;
}
output:
A constructor
B conversion constructor
A destructor
foo is called
B destructor
A destructor
Press any key to continue