拷贝构造函数的具体用处

来源:百度知道 编辑:UC知道 时间:2024/09/22 18:26:44
#include <iostream>
using namespace std;
class point
{
public:
point(int xx=0,int yy=0) {x=xx;y=yy;}
point(point & p);
int getx(){return x;}
int gery(){return y;}
private:
int x,y;
};
point::point(point&p)
{
x=p.x;
y=p.y;
cout<<"拷贝构造函数被调用"<<endl;
}
void fun1(point p)
{
cout<<p.getx()<<endl;
}
point fun2()
{
point A(1,2);
return A;
}
int main()
{
point A(4,5);
point B(A);
cout<<B.getx<<endl;
fun1(B);
B=fun2();
cout<<B.getx()<<endl;
}
这个程序中的调用了三次拷贝构造函数,调用的时候的具体步骤是什么啊

class A
{
}

void main()
{
A a;
A b = a;
}
在执行语句A b = a;时,如果没有拷贝构造函数,那么编译器将采用位拷贝的方法,也就是说会有两个指针指向同一块内存。
这样有可能造成一块内存被释放两次,造成系统崩溃。

至于调用的步骤,可以从运行结果看的出来吧