008--C++拷贝构造初步了解(最优)

简介:拷贝构造涉及两种调用方式(显示以及隐式调用拷贝构造),同时,拷贝构造涉及两种构造方式(深浅拷贝)。

拷贝构造:拷贝构造是一种特殊的构造函数

拷贝构造:用自身这种类型的数据来构造自身。

特点:

  1. 在用户未定义的情况下,系统自动创建一个隐式的默认拷贝构造,它会将已存在对象中的数据成员逐个的拷贝到新创建的对象当中。
  2. 如果使用默认的拷贝构造,当类的数据成员指向堆区内存的时候,会拷贝指针,但不会拷贝堆内存(浅拷贝)
  3. 自定义拷贝来解决浅拷贝的问题(深拷贝)

浅拷贝代码学习认识:

//如果在一个对象中不包含动态内存的分配,那么它所对应的析构函数,结构体内可以不用写任何数据。
//如果所接触到的类中没有动态内存分配的数据,那么就对象建立所使用的拷贝就是简单由系统所提供的拷贝构造
//(即浅拷贝)。
//那么相对应,如果类中涉及到动态内存的分配,那么如果使用简单的拷贝构造,就会出现动态内存析构时
//出现无法争取析构的问题。所以也就为了解决这个问题,出现了深拷贝。
#include<iostream>
using namespace std;
class MyStu{
	int id;
	int age;
public:
	MyStu(int id,int age){
		this->id = id;
		this->age = age;
	}
	~MyStu(){
	
	}
};
int main(){
	//拷贝构造两种调用方式:显示调用,以及隐式调用
	cout << "拷贝构造原型:" << endl;
	int a(1);//拷贝构造(显示调用拷贝构造)
	int b = a;//拷贝构造(隐私调用拷贝构造)
	b = a;//赋值运算
	cout << "----------------------" << endl;
	cout << "类的拷贝构造(浅拷贝)" << endl;
	MyStu s(1,20);//调用带参构造
	MyStu s1(s);//显示调用拷贝构造
	MyStu s2 = s1;//隐式调用拷贝构造
	return 0;
}

 


当你发现身边有一群傻缺的时候,最好的方式就是把他们当作空气一样,认真继续你的学习·············

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码字界陈冠希

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值