// 深赋值与浅赋值
// 浅赋值,这样的浅赋值会导致程序崩溃,与浅拷贝一个理
#include 
using namespace std;
class S_Evaluate;
ostream& operator<<(ostream& out, const S_Evaluate &s);
class S_Evaluate
{
	friend ostream& operator<<(ostre...
                            
                            
                                分类:
编程语言   时间:
2015-05-15 21:28:51   
                                阅读次数:
162
                             
                    
                        
                            
                            
                                设计模式有很多, 我们就从一个比较简单的模式开始-Prototype Pattern, 如果翻译成”原型模式”没有问题的话, 我们下面就这么用. Prototype Pattern用来解决对象的拷贝问题, 分为深拷贝和浅拷贝....
                            
                            
                                分类:
其他好文   时间:
2015-05-15 17:41:53   
                                阅读次数:
102
                             
                    
                        
                            
                            
                                // 浅拷贝与深拷贝
// 像这样的浅拷贝会导致程序崩溃,因为同一个空间被释放了两次
#include 
#include 
using namespace std;
class S_Copy;
ostream& operator<<(ostream& out, const S_Copy &s);
class S_Copy
{
	friend ostream& operator<<(ostr...
                            
                            
                                分类:
编程语言   时间:
2015-05-15 17:41:50   
                                阅读次数:
99
                             
                    
                        
                            
                            
                                对于普通类型的对象来说,它们之间的复制是很简单的,例如:
int a=88;
int b=a; 
而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 
#include iostream>
using namespace std;
class CExample {
private:
     int a;
pub...
                            
                            
                                分类:
编程语言   时间:
2015-05-14 16:34:04   
                                阅读次数:
118
                             
                    
                        
                            
                            
                                浅拷贝就是对内存地址的复制,让目标对象指针和源对象指向同一片内存空间。浅拷贝只是对对象的简单拷贝,让几个对象共用一片内存,当内存销毁的时候,指向这片内存的几个指针需要重新定义才可以使用,要不然会成为野指针。深拷贝是指拷贝对象的具体内容,而内存地址是自主分配的,拷贝结束之后,两个对象虽然存的值是相同的...
                            
                            
                                分类:
其他好文   时间:
2015-05-14 13:53:30   
                                阅读次数:
116
                             
                    
                        
                            
                            
                                上图展示了浅拷贝:对于非基本数据类型,clone过后,结果两个指针指向了同一块儿内存空间,所以仅仅是浅拷贝,这样的话如果对一个对象进行操作,另一个内容也会变,这显然是不合理的,应该每个对象分别保存自己的数据。
所以我们要进行深拷贝!
浅拷贝和深拷贝例子:
import java.util.Vector;
public class Student implements Cloneable{
...
                            
                            
                                分类:
编程语言   时间:
2015-05-14 08:41:19   
                                阅读次数:
221
                             
                    
                        
                            
                            
                                赋值运算符重载: 是用一个已经存在的对象去给另一个已经存在并初始化(调用过构造函数)的对象进行赋值。拷贝构造函数:其实本质还是构造函数,用一个已存在的对象去构造一个原先不存在的对象。string a("hello");string b("world");string c =a ; //拷贝构造函数....
                            
                            
                                分类:
其他好文   时间:
2015-05-08 12:46:41   
                                阅读次数:
160
                             
                    
                        
                            
                            
                                NSObject子类对象如果想要实现拷贝,就需要实现NSCopying,NSMutableCopying协议。
理论上说Copy实现的是浅拷贝:retain当前对象的指针,retainCount+1;
mutableCopy实现的是深拷贝:创建新的内存空间并返回地址,retainCount = 1;
个人猜测,之所以这么说因为系统的NSString,NSArray,NSDictionary等...
                            
                            
                                分类:
其他好文   时间:
2015-05-07 08:55:17   
                                阅读次数:
158
                             
                    
                        
                            
                            
                                1.复制可变字符串
        NSMutableString * city = [NSMutableString stringWithString:@"北京"];
        //复制可变副本
        NSMutableString * cityCopy = [city mutableCopy];
        //修改副本
        [cityCopy replace...
                            
                            
                                分类:
移动开发   时间:
2015-05-05 19:33:57   
                                阅读次数:
186
                             
                    
                        
                            
                            
                                深拷贝浅拷贝的问题,假如我们现在有两个类A、B,然后类A中有一个属性是B类,这个时候我们把A的一个对象a1赋值给了另外一个变量a2,这个时候更改a2中的属性,如 string 、int 的值,然后在输出a2的值,a1的值就会发现没有发生什么问题 ,a2中更改的值不会影响a1中的值。但是如果我们更改a...
                            
                            
                                分类:
其他好文   时间:
2015-05-04 13:25:53   
                                阅读次数:
97