![]() |
#2
yangfrancis2015-06-01 22:22
|

#include <iostream>
#include <vector>
using namespace std;
struct Exmp1{
Exmp1()
{
cout<<"Exmp1()"<<endl; //默认构造函数
}
Exmp1(const Exmp1&)
{
cout<<"Exmp1(const Exmp1&)"<<endl; //复制构造函数
}
Exmp1&operator=(const Exmp1 &rhe)
{
cout<<"operator=(const Exmp1&)"<<endl; //赋值操作符
return *this;
}
//析构函数
~Exmp1()
{
cout<<"~Exmp1()"<<endl;
}
};
void func1(Exmp1 obj){} //形参为Exmp1对象的引用
void func2(Exmp1&obj){} //形参为Exmp1对象的引用
Exmp1 func3(){
Exmp1 obj;
return obj;
}
int main()
{
Exmp1 eobj;
func1(eobj);
func2(eobj);
eobj = func3();
Exmp1 *p=new Exmp1;
vector<Exmp1>evec(3);
delete p;
return 0;
}
#include <vector>
using namespace std;
struct Exmp1{
Exmp1()
{
cout<<"Exmp1()"<<endl; //默认构造函数
}
Exmp1(const Exmp1&)
{
cout<<"Exmp1(const Exmp1&)"<<endl; //复制构造函数
}
Exmp1&operator=(const Exmp1 &rhe)
{
cout<<"operator=(const Exmp1&)"<<endl; //赋值操作符
return *this;
}
//析构函数
~Exmp1()
{
cout<<"~Exmp1()"<<endl;
}
};
void func1(Exmp1 obj){} //形参为Exmp1对象的引用
void func2(Exmp1&obj){} //形参为Exmp1对象的引用
Exmp1 func3(){
Exmp1 obj;
return obj;
}
int main()
{
Exmp1 eobj;
func1(eobj);
func2(eobj);
eobj = func3();
Exmp1 *p=new Exmp1;
vector<Exmp1>evec(3);
delete p;
return 0;
}
输出:
Exmp1()
Exmp1(const Exmp1&)
~Exmp1()
Exmp1()
operator=(const Exmp1&)
~Exmp1()
Exmp1()
Exmp1()
Exmp1(const Exmp1&)
Exmp1(const Exmp1&)
Exmp1(const Exmp1&)
~Exmp1()
~Exmp1()
~Exmp1()
~Exmp1()
~Exmp1()
~Exmp1()
--------------------------------
Process exited with return value 0
Press any key to continue . . .