原型模式(Prototype):用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 原型模式结构图 原型模式结构图 通俗来说:原型模式就是深拷贝和浅拷贝的实现。 浅拷贝 只实现了值拷贝,对于引用对象还是指向原来的对象。 父类实现clone方法,子类没有实现clone方法,其效果是浅拷贝 ...
分类:
编程语言 时间:
2016-07-21 19:24:17
阅读次数:
211
先上代码: 输出: 1. 基本数据类型作为参数传递 是按值传递,实际上是对传入的基本数据类型参数A 做了一个值拷贝B,然后所有操作是针对这个拷贝B 的,因此不会影响到原参数A。 比如上面代码中,tryChangeBasicData() 方法前后 paraInt 值并没有改变。 2. 对象引用作为参数 ...
分类:
编程语言 时间:
2016-07-21 12:21:43
阅读次数:
173
string初始化: 拷贝初始化: = 初始化变量,编译器把等号右侧的初始值拷贝到新创建的对象 string s = "stduent"; string s = s1; 直接初始化:不使用等号 string s("stduent"); string s(10,'c'); 判断string是否为空 s ...
分类:
编程语言 时间:
2016-07-13 15:42:55
阅读次数:
144
/* 1.字符串常量中可以包含特殊字符例如:空字符\0,反斜杠\,制表符\t,换行符\n,回车符\r,双引号\”和单引号\’ 2.var修饰的是可变的 let修饰的是不可变的 3.一个String类型就是一个实际的值,当定义一个新的String,并且将之前的String值拷贝过来的时候,是实际创建了 ...
分类:
其他好文 时间:
2016-07-07 18:58:41
阅读次数:
144
第四章和第五章没什么特别的。基本上就是书本上的字面意思,也没什么需要注意的细节。直接记录第六章。 本章介绍了函数,其实也没什么特别的。但有几个重点 1.形参的类型决定了形参和实参的交互方式。形参是引用,则它将绑定到实参上。 2.实参的值拷贝给形参时,形参和实参是两个相互独立的对象。 当初始化一个非引 ...
分类:
编程语言 时间:
2016-07-06 23:13:41
阅读次数:
150
在记忆中 PHP 简单变量的拷贝是按值传递,数组和对象的拷贝是按引用传递,即通过引用来实现。 简单变量和对象好理解: 对象 $a 和 对象 $b 的内存地址指向了同一个地方,即针对 $a 和 $b 所做的操作都针对同一个实例。 PHP 中可以通过 clone 关键字按值拷贝对象: 数组: 这样看,数 ...
分类:
编程语言 时间:
2016-06-22 00:03:17
阅读次数:
221
拷贝传值:把一个变量的值拷贝一份,传给了另外一个变量拷贝传值中,两个变量之间没有任何联系,修改其中一个一个变量的值,原来的变量不变。 例: var arr1 = ["张三",24,"大专"]; //定义一个二维数组; var arr2 = arr1;//将arr1的地址传给arr2,(不传递实际参数 ...
分类:
Web程序 时间:
2016-06-11 17:11:22
阅读次数:
210
2、数组实现,可以和指针采用类似的方法。要申请一个中间数组。若题目要求将合并的数组保存到num1中,我们可以最后将中间数组的值拷贝到num1中。 若要求不让使用中间变量,可以使用以下算法 两种方法时间复杂度为均为O(n) ...
分类:
编程语言 时间:
2016-05-22 10:53:05
阅读次数:
488
说起数组我们都不陌生,但在C++中,除了数组还多了一个“新朋友”那就是vector。其实vector本质上与array的数据安排以及操作方式也其为相似。它俩唯一的差别就是空间灵活性。无论在C语言还是C++中,array的空间一旦申请完成就不能进行更改,如果需要更大空间来存储数据,便得重新申请一个新的数组并将原来的数值拷贝过去,然后再将原来数组释放,而这一切都需要用户自己完成。而vector不同的是,...
分类:
其他好文 时间:
2016-05-13 15:08:59
阅读次数:
229
实现CMyString类,实现赋值运算符函数(深拷贝与浅拷贝)
深拷贝:赋值运算符函数说明
步骤1、释放原来的内存空间
步骤2、再重新开辟要赋值的对象的大小的空间
步骤3、再将另一个对象的值拷贝给this对象
友元函数的说明:由于输出重载需要俩个参数,不能再隐含this指针,故使用友元函数
代码如下:
class CMyString
{
public:...
分类:
其他好文 时间:
2016-05-12 23:45:31
阅读次数:
394