在前一篇文章中,讨论了类句柄和对象的关键主题,这对于理解浅拷贝和深拷贝的工作原理至关重要。
当pkt与新对象的new()
构造函数一起使用时,pkt中的内容将被复制到pkt2中。
Packet pkt, pkt2;
pkt = new;
pkt2 = new pkt;
这种方法被称为浅复制(Shallow copy),因为所有变量都是跨整数、字符串、实例句柄等复制的,但嵌套对象不是完全复制的。只有它们的句柄将被分配给新对象,因此两个数据包都将指向同一嵌套对象实例。为了说明这一点,让我们看一个例子。
class Header;