Dog(const Dog &dg) { //拷贝构造函数 cout << "copy construct" << endl; //输出信息

m_value = dg.m_value;  //将被拷贝对象的m_value赋值给当前对象的m_value

//m_ptr = dg.m_ptr;   //浅拷贝,将被拷贝对象的m_ptr指针赋值给当前对象的m_ptr,两个指针指向同一块内存
m_ptr = new int [10];  //深拷贝,为当前对象创建一个新的int类型数组,长度为10

memcpy(m_ptr, dg.m_ptr, 10 * sizeof(int));  //将被拷贝对象的m_ptr指向的内存内容拷贝到当前对象的m_ptr指向的内存中

}

Dogconst Dog &dg 拷贝构造函数 		cout copy construct endl;		m_value = dgm_value;		m_ptr = dgm_ptr; 浅拷贝 		m_ptr = new int 10; 深拷贝 		memcpym_ptr dgm_ptr 10 sizeofint;	详细解释每一行用中文

原文地址: https://www.cveoy.top/t/topic/iJwS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录