成都网站建设设计

将想法与焦点和您一起共享

C++对象的浅复制和深复制详解及简单实例

C++对象的浅复制和深复制详解及简单实例

成都创新互联公司专业提供服务器托管德阳服务,为用户提供五星数据中心、电信、双线接入解决方案,用户可自行在线购买服务器托管德阳服务,并享受7*24小时金牌售后服务。

浅复制:两个对象复制完成后共享某些资源(内存),其中一个对象的销毁会影响另一个对象

深复制:两个对象复制完成后不会共享任何资源,其中一个对象的销毁不会影响另一个对象

下面我们来看一段代码,以便直观的理解:

#include 
#include 
using namespace std; 
class Student 
{ 
  int no; 
  char *pname; 
public: 
  Student(); 
  Student(int n,char* p); 
  ~Student(); 
  void display(); 
}; 
 
Student::Student(){} 
 
Student::Student(int n,char* p) 
{ 
  no=n; 
  pname=new char[10]; 
  strcpy(pname,p); 
} 
 
Student::~Student() 
{ 
  delete []pname; 
} 
 
void Student::display() 
{ 
  cout<<"学号:"<http://chengdu.cdxwcx.cn/article/piiedo.html