代码一:
#include <iostream>
using namespace std;
class A
{
public:
A(){cout<<"构造函数被调用..."<<endl;} //默认构造函数
A(A&){cout<<"拷贝构造函数被调用。。。"<<endl;} //拷贝构造函数
~A(){cout<<"析构函数被调用..."<<endl;} //析构函数
};
A func(A *one)
{
return *one; //返回的是一个值,故需要调用拷贝构造函数
}
int main()
{
A a;
func(&a);
return 0;
}
输出:
构造函数被调用...
拷贝构造函数被调用。。。
析构函数被调用...
析构函数被调用...:
代码二:
#include <iostream>
using namespace std;
class A
{
public:
A(){cout<<"构造函数被调用..."<<endl;} //默认构造函数
A(A&){cout<<"拷贝构造函数被调用。。。"<<endl;} //拷贝构造函数
~A(){cout<<"析构函数被调用..."<<endl;} //析构函数
};
A* func(A *one) //"A*" 表示其返回值需要是一个指针类型
{
return one;//返回值是一个指针类型
}
int main()
{
A a;
func(&a);
return 0;
}
输出:
构造函数被调用...
析构函数被调用...