c++类调用问题
#include<vector>#include<iostream>
using namespace std;
struct Exmpl{
Exmpl(){cout<<"Exmpl()"<<endl;}
Exmpl(const Exmpl&)
{cout<<"Exmpl(const Exmpl&)"<<endl;}
Exmpl& operator=(const Exmpl &rhe)
{
cout<<"operator=(const Exmpl&)"<<endl;
return *this;
}
~Exmpl()
{cout<<"~Exmpl()"<<endl;}
};
void fun1(Exmpl obj)
{}
void fun2(Exmpl& obj)
{}
Exmpl fun3()
{
Exmpl obj;
return obj;
}
int main()
{
Exmpl eobj;
fun1(eobj);
fun2(eobj);
eobj=fun3();
Exmpl *p=new Exmpl;
vector<Exmpl> evec(3);
delete p;
return 0;
}
输出的结果为:
Exmpl()
Exmpl(const Exmpl&)
~Exmpl()
Exmpl()
Exmpl(const Exmpl&)
~Exmpl()
operator=(const Exmpl&)
~Exmpl()
Exmpl()
Exmpl()
Exmpl(const Exmpl&)
Exmpl(const Exmpl&)
Exmpl(const Exmpl&)
~Exmpl()
~Exmpl()
~Exmpl()
~Exmpl()
~Exmpl()
~Exmpl()
书上写有它们是怎样调用的,但是不明白为什么会这样调用,还有当使用完默认构造函数后不需要调用析构函数吗?谢谢啦