1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > [转载] 深层复制构造函数和浅层复制构造函数区别

[转载] 深层复制构造函数和浅层复制构造函数区别

时间:2018-11-15 04:47:15

相关推荐

[转载] 深层复制构造函数和浅层复制构造函数区别

参考链接: Python复制(深层复制和浅层复制)

构造函数用来初始化对象的,复制构造函数是把一个已知的对象复制给新的对象,(2者都是对象)。

浅复制构造函数只复制指针(换句话说就是2个对象的地址一样),例如

class A

{

pubic:

A(){x = new int; *x = 8;}

A(const A &a)

{

x = a.x //浅层复制构造函数

}

~A(){delete x; x = NULL;}

private:

int *x;

}

深复制构造函数定义内new了一个新地址,因此2个对象的地址不一样,析构2个对象的时候不会象浅复制构造函数那样重复析构一个地址了。例如

class A{pubic: A(){x = new int; *x = 8;} A(const A &a) { x = new int; //注意区分x,这个x是复制的对象中的指针x *x = *(a.x) //浅深层复制构造函数 } ~A(){delete x; x = NULL;}private:int *x;} 重点是区分概念,和区分x,要不很容易混乱另外补加一个小概念,对于高大上的“级连”,比如说cout语句能实现级连,就是指提取运算符"<<"能连续使用,例如cout<<x<<y<<z;这里的"<<"用了三次

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。