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; 详细解释每一行用中文
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指向的内存中
}
原文地址: https://www.cveoy.top/t/topic/iJwS 著作权归作者所有。请勿转载和采集!