构造函数、深拷贝、浅拷贝

简介: 构造函数、深拷贝、浅拷贝

c++ 什么时候生成默认构造函数?

c++中的深拷贝,浅拷贝

浅拷贝带来的问题

重写拷贝构造函数

//重写的拷贝构造函数
Person(const Person &p) {
  m_Age = p.m_Age;
  //m_Height = p.m_Height 编译器默认实现的
  m_Height = new int(*p.m_Height);  //在堆上重新分配
}

充电站

推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习


相关文章
|
7月前
|
设计模式 存储 Java
深拷贝与浅拷贝,就是这么简单
深拷贝与浅拷贝,就是这么简单
|
2月前
|
存储 前端开发 JavaScript
浅拷贝和深拷贝的区别?
本文首发于微信公众号“前端徐徐”,介绍了JavaScript中浅拷贝和深拷贝的概念及其实现方法。文章首先解释了数据类型的基础,包括原始值和对象的区别,然后详细介绍了浅拷贝和深拷贝的定义、底层逻辑以及常见的实现方式,如 `Object.assign`、扩展运算符、`JSON.stringify` 和手动实现等。最后,通过对比浅拷贝和深拷贝的区别,帮助读者更好地理解和应用这两种拷贝方式。
77 0
浅拷贝和深拷贝的区别?
|
6月前
|
安全 Java
深拷贝和浅拷贝的区别
深拷贝和浅拷贝的区别
|
7月前
什么是深拷贝和浅拷贝哇
什么是深拷贝和浅拷贝哇
|
编译器 C++
C++中的深拷贝和浅拷贝介绍
对于基本类型的数据以及简单的对象,它们之间的拷贝非常简单,就是按位复制内存。例如: class Base{ public: Base(): m_a(0), m_b(0){ } Base(int a, int b): m_a(a), m_b(b){ } private: int m_a; int m_b; }; int main(){ int a = 10; int b = a; //拷贝 Base obj1(10, 20);
128 0
深拷贝和浅拷贝
类里面会为我们实现默认的拷贝,这个做的是值的拷贝,但是假如对象里的数据成员在堆上开辟了内存资源,如果继续浅拷贝就会导致两根指针指向同一块资源,从而产生内存泄漏问题。但是深拷贝可以解决这个问题,本文将详细介绍深拷贝与浅拷贝。
|
编译器 C++
C++入门知识-拷贝构造函数-浅拷贝、深拷贝
C++入门知识-拷贝构造函数-浅拷贝、深拷贝
109 0
|
C++ 编译器
c++拷贝构造函数(深拷贝,浅拷贝)详解
一、什么是拷贝构造函数      首先对于普通类型的对象来说,它们之间的复制是很简单的,例如: int a=100; int b=a;     而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。
2379 0
|
编译器 C++
C++拷贝构造函数(深拷贝,浅拷贝)详解
C++拷贝构造函数(深拷贝,浅拷贝)详解
C++拷贝构造函数(深拷贝,浅拷贝)详解