第12章 动态内存
1. 申请并使用shared_ptr. P400
2. shared_ptr计数. P402
赋值, 拷贝, 向函数传递一个智能指针, 或函数返回一个智能指针都会增加当前智能指针的计数.
3. 不同对象间利用智能指针共享数据的例子.
4. 使用new来动态申请内存. P407
默认情况下...
分类:
编程语言 时间:
2015-03-09 10:57:10
阅读次数:
133
Swift 的String类型与 Foundation NSString类进行了无缝桥接。在日常开发中,绝大多数应该用 StringString 与 NSString 还有以下区别
String类型是值类型(不再是对象类型),字符串在进行常量、变量赋值操作或在函数/方法中传递时,会进行值拷贝。 任何情况下,都会对已有字符串值创建新副本,并对该新副本进行传递或赋值操作。
String 可以支持字符遍历...
分类:
其他好文 时间:
2015-03-03 20:43:34
阅读次数:
154
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Runtime.Serialization.Formatters.Binary;using System.Text...
函数本质上是一个有名字的程序块,程序块使得多条语句可以一起执行。变量类型:1、复杂类型:Object、Array等。2、原始类型:String、Integer等。函数参数:1、复杂类型:传递引用。2、原始类型:传递值(拷贝)。函数类型:1、函数声明:在解析的时候,被提升至当前作用域的顶端,永远不要在...
分类:
编程语言 时间:
2015-01-12 10:38:44
阅读次数:
190
60、性能考虑,数组是首选,在基本类型处理方面,数组还是占优势的,而且集合类的底层也都是通过数组实现,建议在性能要求较高的场景中使用数组替代集合。
61、如果有必要,使用变长数组:我们可以通过对数组扩容”婉转”地解决数组扩容问题,下面采用的是Arrays数组工具类的copyOf方法,产生了一个newLen长度的新数组,并把原有的值拷贝了进去,之后就可以对超长的元素进行赋值了
62、警惕数组...
分类:
编程语言 时间:
2014-12-24 10:04:24
阅读次数:
269
无法返回引用数据传递包括两种,返回值和参数。很可惜,newlisp的返回值只进行值拷贝,也就是返回副本,并没有方法返回引用。那么看看参数吧,通过参数有两种方法传递引用,一种是通过使用单引号,比如:单引号symbol传递参数引用(define (change-list aList) (push 999 (eval aList)))
(set 'data '(1 2 3 4 5))
; note...
分类:
其他好文 时间:
2014-12-14 20:02:05
阅读次数:
247
前一段时间去面试,被人问了一个这个问题, 突然不知道怎么回答了, 后来查了查,才知道原来是怎么样了, 现在总结一下吧。
拷贝构造函数和赋值运算符用于创建对象的副本。在某些情况下由编译器隐式调用拷贝构造函数,例如按值传递对象的时候。
优点:
拷贝构造函数可以很容易地复制对象。 STL容器要求所有内容可拷贝和赋值。拷贝构造函数可以比copyfrom()式的解决方法更有效,因为它们将构造和复制...
分类:
编程语言 时间:
2014-11-12 19:48:35
阅读次数:
242
背景:默认的c++拷贝与赋值构造函数实现的是值拷贝传递。当类的数据成员为指向堆上的指针时,值拷贝会使多个类的指针指向同一块内存。当其中一个类释放这块内存时,会照成其他类的这个指针空悬,从而引来风险。智能指针是用来解决这类问题的方法。它最终的目的是让多份指针安全地指向同一块内存。要做到这一点,这块被指...
分类:
编程语言 时间:
2014-11-09 19:20:37
阅读次数:
172
函数调用的参数传递有“值传递”和“引用传递”两种传递方式。如果采用“值传递”,在函数内部改变了参数的值,主调程序的对应变量的值不会改变;如果采用“引用传递”,在函数内部改变了参数的值,主调函数对应变量的值也会发生相应的改变。“值传递”的实质传递一个变量的“值拷贝”,“引用传递”的实质是传递一个变量的...
分类:
其他好文 时间:
2014-11-05 23:03:08
阅读次数:
186
PHP中的foreach作为经常用到的函数,常常用来遍历数组,对于数组中的元素是值的情形(如一般常见型的数组),foreach只是将数组中的每份元素的值拷贝到each后面的变量,也就是对值本身的拷贝,对其值进行改变并不会影响到数组本身。如:$arr = array(1, 2, 3);foreach(...
分类:
编程语言 时间:
2014-10-30 10:16:33
阅读次数:
176