`
kofsky
  • 浏览: 201793 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

深拷贝与浅拷贝

阅读更多

 编写一个用于数值计算的向量
通过普通的数组来存储数据
其中一个构造函数如下:

/************************************************************************/
/*   构造函数:根据 数组 与 数组的长度 构造向量         */
/************************************************************************/
IVector::IVector( 
double *_data, const int _size )
{
      
this->_data = _data;
      
this->_size = _size;
}

如下代码的执行操作部分是没问题的:

{      // 注意:问题的关键在于,这两个对象是由同一个数组构造的
       IVector vector1( array2, _size );
       IVector vector2( array2,_size );
       
//操作
}

但当 离开这段代码 ,也就是运行到代码片断的" } " 时,就出现问题了。挂了。

当定位了错误的位置,查看了析构函数后,很快就确定了错误的原因:浅拷贝。

浅拷贝:实现简单、空间效率略高,但潜在错误多

深拷贝:实现略麻烦些、内存耗费大、可以消除许多潜在错误

 

c++ 的内存管理确是一件头疼的事件

 

分享到:
评论

相关推荐

    js深拷贝与浅拷贝详解以及例子.pdf

    JS 深拷贝与浅拷贝详解以及例子 深拷贝与浅拷贝是 JavaScript 开发中常见的概念,分别对应着不同的拷贝方式。在本文中,我们将详细介绍浅拷贝和深拷贝的概念、特点、实现方法和实例。 一、浅拷贝 浅拷贝只拷贝一...

    深拷贝与浅拷贝;copy与mutableCopy;容器类型的深拷贝;copy和strong;

    1、只有NS类型调用copy方法才是浅拷贝,其他的情况全是深拷贝 2、容器类调用copy或mutableCopy能出现的深拷贝的情况下,只是容器的深拷贝,而非容器内元素的深拷贝 3、无论是声明NSString还是NSMutableString类型的...

    03-深拷贝与浅拷贝.html

    03-深拷贝与浅拷贝

    java设计模式【之】原型模式、深拷贝与浅拷贝【源码】【场景:克隆羊】

    java设计模式【之】原型模式、深拷贝与浅拷贝【源码】【场景:克隆羊】 * 原型模式(Prototype) * 实现方式: * 需要被克隆的 class类, 重写Object中的clone()方法,并实现Cloneable接口(否则报错 ...

    深拷贝和浅拷贝一些例子

    深拷贝和浅拷贝一些例子

    copy的使用(深拷贝、浅拷贝)

    让我们深入探讨一下深拷贝与浅拷贝的概念及其应用场景。 ### 浅拷贝(Shallow Copy) 浅拷贝是创建一个新对象,这个新对象含有原对象的所有元素,但这些元素只是原始对象中的引用。也就是说,如果原始对象包含可变...

    通过源码分析iOS中的深拷贝与浅拷贝

    在iOS开发中,深拷贝和浅拷贝是两个关键概念,它们涉及到对象复制时内存管理的细节。本文将从源码角度深入解析这两种拷贝方式。 首先,我们需要明确深拷贝和浅拷贝的基本定义。浅拷贝,也称为指针拷贝,意味着拷贝...

    C++深拷贝浅拷贝

    根据提供的标题、描述和部分无法识别的内容,我们将围绕“C++深拷贝与浅拷贝”的主题进行深入探讨。在C++编程语言中,深拷贝(Deep Copy)与浅拷贝(Shallow Copy)是对象复制时经常遇到的概念。它们在内存管理和...

    深入理解JavaScript中的深拷贝与浅拷贝:实现方法与应用场景

    然而,复制行为可以根据对象内部属性的引用方式被区分为深拷贝和浅拷贝。理解这两者之间的区别对于编写正确和高效的代码至关重要。本文将详细探讨JavaScript中的深拷贝和浅拷贝,包括它们的定义、实现方法以及在不同...

    Java Clone深拷贝与浅拷贝的两种实现方法

    Java Clone 深拷贝与浅拷贝的两种实现方法 Java Clone 是 Java 语言中的一种复制对象的机制,它可以将一个对象的所有属性和状态复制到另一个对象中,实现对象的深拷贝和浅拷贝。下面我们将讨论 Java 中的深拷贝和浅...

    46_深拷贝与浅拷贝的区别1

    而深拷贝则是创建一个全新的、与原始对象完全独立的对象,新对象的属性和值都是原始对象的副本,它们在内存中占据不同的位置,所以修改其中一个对象不会影响另一个。 接着,我们转向C++,在C++中,浅拷贝通常由默认...

    深拷贝拷贝的是内容,浅拷贝拷贝的是指针

    ### 深拷贝与浅拷贝的概念及应用 #### 一、深拷贝与浅拷贝的区别 在计算机编程领域中,深拷贝(Deep Copy)与浅拷贝(Shallow Copy)是两种常见的对象复制方法。这两种方法在处理复杂数据结构(如数组、列表等)时...

    JavaScript中的深拷贝与浅拷贝:技术解析与代码实现

    浅拷贝和深拷贝各有适用场景。浅拷贝适用于只需复制对象第一层属性且不涉及修改引用类型属性的场景,而深拷贝适用于需要完全独立的数据副本,尤其是处理嵌套对象或数组时。在选择拷贝方法时,应根据实际需求和性能...

    浅析Java中的深拷贝与浅拷贝

    首先我们看看浅拷贝和深拷贝的定义 浅拷贝:只复制一个对象,对象内部存在的指向其他对象数组或者引用则不复制 深拷贝:对象,对象内部的引用均复制 为了更好的理解它们的区别我们假设有一个对象A,它包含...

    数组的深拷贝与浅拷贝以及数组拷贝的几种方式比较

    目录一、深拷贝与浅拷贝解析浅拷贝深拷贝二、数组拷贝的方式1.for循环来拷贝2.System.arraycopy( )拷贝3.Arrays.copyOf( )拷贝4.clone( )拷贝5.解释三、四种拷贝方式效率比较1. System.arraycopy( )2.Arrays.copyOf...

    C++之深拷贝和浅拷贝

    拷贝构造函数可以执行浅拷贝或深拷贝。浅拷贝是按位拷贝成员,这可能会导致共享数据导致的错误。深拷贝则创建了原始数据的全新副本,避免了共享数据的问题。接下来,我们详细探讨浅拷贝和深拷贝的区别、问题所在以及...

    Python深拷贝与浅拷贝用法实例分析

    本文实例讲述了Python深拷贝与浅拷贝用法。分享给大家供大家参考,具体如下: 1、对象的赋值 对象的赋值实际上是对象之间的引用:当创建一个对象,然后将这个对象赋值给另外一个变量的时候,python并没有拷贝这个...

    从深拷贝、浅拷贝构造函数问题

    #### 四、问题核心——浅拷贝与深拷贝 ##### 浅拷贝(Shallow Copy) - **定义:** 浅拷贝是指当创建一个新的对象时,仅仅复制了原对象的引用而不是创建一个新的副本。 - **示例:** 在本例中,当`a1->push_back...

    OC-深拷贝(mutablecopy)与浅拷贝(copy)的区别

    总的来说,理解和正确使用深拷贝与浅拷贝是OC编程中的一项基本技能,它能帮助我们更好地控制对象的生命周期,避免潜在的内存问题。在处理复杂数据结构时,尤其需要注意深拷贝和浅拷贝的区别,确保程序的稳定性和正确...

Global site tag (gtag.js) - Google Analytics