深拷贝,拷贝内存的内容,旧结构体发生变化,新结构体也会变化。 浅拷贝,直接地址复制,共享内存,新旧结构体互补影响。 ...
                            
                            
                                分类:
其他好文   时间:
2016-06-08 20:20:16   
                                阅读次数:
154
                             
                         
                    
                        
                            
                            
                                复制构造函数 定义:
  只有单个形参,而且该形参是对本类类型对象的引用(常用const修饰),这样的构造函数成为复制构造函数。复制构造函数可用于: 
  1、根据另一个同类型的对象显示或隐式初始化一个对象 
  2、复制一个对象,将它作为实参传递给一个函数 
  3、从函数返回时复制一个对象 
  4、初始化顺序容器中的元素 
  5、根据元素初始化列表初始化数组元素 
  ——以上定义来自《C+...
                            
                            
                                分类:
其他好文   时间:
2016-06-06 01:13:02   
                                阅读次数:
156
                             
                         
                    
                        
                            
                            
                                    ;深拷贝 浅拷贝 深拷贝(成员用到了指针存储空间地址)每个对象的成员都有自己独立的成员内存地址空间,造成了浪费 浅拷贝,把原对象的指针也直接拷贝过来我还是用的这一片空间,但是析构会有重复释放问题,解决重复释放用引用计数记录这个类产生了多少对象,析构的时候--引用计数就可以了 计数为0 delete  ...
                            
                            
                                分类:
其他好文   时间:
2016-06-05 23:03:37   
                                阅读次数:
170
                             
                         
                    
                        
                            
                            
                                    1、copy关键字 1> 浅拷贝与深拷贝 浅拷贝就是对内存地址的复制,让目标对象指针和源对象指向同一片内存空间。 深拷贝是指拷贝对象的具体内容,而内存地址是自主分配的,拷贝结束之后,两个对象虽然存的值是相同的,但是内存地址不一样,两个对象也互不影响,互不干涉。 2> copy和mutableCopy ...
                            
                            
                                分类:
移动开发   时间:
2016-05-18 10:23:35   
                                阅读次数:
168
                             
                         
                    
                        
                            
                            
                                浅拷贝与深拷贝首先回顾下,浅拷贝:即指针拷贝,源对象和新对象指向的是同一个地址,也就是说浅拷贝要复出出来一个新的文件,但两个文件的地址还是一个。浅拷贝的话是只有不可变数组(如:NSArray,NSSet,NS字典)遇上copy,才是浅拷贝,剩下的都是深拷贝。例如: Dog * dog1 = [Dog new];// 这里就是浅拷贝,即指针拷贝
Dog * dog2 = dog1;而深拷贝,自己定义的...
                            
                            
                                分类:
编程语言   时间:
2016-05-12 11:55:27   
                                阅读次数:
207
                             
                         
                    
                        
                            
                            
                                浅拷贝:指针拷贝,指针与原指针地址相同,没有创建新的对象。 深拷贝:内容拷贝,创建了新的对象,指针地址与原对象的指针地址不同。 NSString测试代码如下 打印结果如下(后面打印出的两个NSCFConstanaString与NSCFString是打印出系统底层实现时调用方法的类) 设置一个断点来鼠 ...
                            
                            
                                分类:
其他好文   时间:
2016-04-23 18:03:13   
                                阅读次数:
260
                             
                         
                    
                        
                            
                            
                                c++的动态内存管理是非常重要的,操作不当很容易引起内存泄漏,下面我详细写了一些内存管理该注意的地方,包括引用计数的实现深拷贝浅拷贝#include<iostream>usingnamespacestd;classString{public:String():_str(newchar[1]){*_str=‘\0‘;}String(char*str):_str(newchar..
                            
                            
                                分类:
其他好文   时间:
2016-04-13 00:32:37   
                                阅读次数:
146
                             
                         
                    
                        
                            
                            
                                深拷贝
#include<iostream>
#include<stdio.h>
usingnamespacestd;
classString
{
public:
String(char*str="")
:_str(newchar[strlen(str)+1])
{
strcpy(_str,str);
}
	String(constString&s)//拷贝构造
		:_str(NULL)
	{
	Stringtmp(s._str);
		swap(_str,tm..
                            
                            
                                分类:
编程语言   时间:
2016-03-21 02:02:47   
                                阅读次数:
521
                             
                         
                    
                        
                            
                            
                                    为对象创建副本的技术称为拷贝(也叫克隆)。我们将拷贝分为浅拷贝和深拷贝。 浅拷贝:将对象中的所有字段复制到新的对象(副本)中。其中,值类型字段的值被复制到副本中后,在副本中的修改不会影响到源对象对应的值。而引用类型的字段被复制到副本中的是引用类型的引用,而不是引用的对象,在副本中对引用类型的字段值做
                            
                            
                                分类:
其他好文   时间:
2016-03-20 21:01:58   
                                阅读次数:
223
                             
                         
                    
                        
                            
                            
                                STRING.h文件#pragmaonce#include<string.h>classString{public:		String(char*str="")//深拷贝		:_str(newchar[strlen(str)+1])	{		strcpy(_str,str);		cout<<"构造函数"<<endl;	}	~String()	{		if(_str!=NULL)		{			delete[]_str;		}		cout<<"析构函..
                            
                            
                                分类:
其他好文   时间:
2016-03-12 23:11:23   
                                阅读次数:
221