C++中的类和对象的默认构造函数

本文探讨了构造函数的使用细节,指出通常需要自定义全缺省构造函数以适应各种场景。拷贝构造函数和赋值运算符重载是拷贝行为的重要组成部分,不写时编译器会默认生成,但自定义类型需注意深拷贝和浅拷贝的区别。总结了构造、析构、拷贝构造和赋值重载的默认行为及其对内置和自定义类型的影响。
摘要由CSDN通过智能技术生成

1.我们不写,编译器自动生成一个构造函数;

2.我们自己写的无参,也是默认生成一个构造函数;

3.我们写的全缺省,也默认生成一个构造函数;(这个函数是最好的)

 总结一下:不用传参就可以调用构造函数;

并且默认构造函数只能有一个;

总结:构造函数的细节很多,但是实际中我们用构造函数是这样的,大多数情况都要自己写构造函数完成初始化并且建议一般情况下都是写一个全却省的构造函数,这种方式能适应各种场景

拷贝构造函数的参数只有一个且必须使用引用传参,使用传值方式会引发无穷递归调用

拷贝构造函数:我们不写,编译器也自动默认生成拷贝构造函数,这个拷贝构造函数对内置类型会完成浅拷贝或者值拷贝

赋值运算符重载--:也是拷贝行为,但是不一样的是;拷贝构造是创建一个对象时,拿另一个同类对象初始化的拷贝(拿一个已经存在的对象去构造初始化另一个要创建的对象)-----------------而且赋值重载拷贝的是两个对象同时存在,都被初始化过,现在想把一个对象复制拷贝给另一个对象;

针对我们不写编译器总结一下:

构造和析构的特性是类似的,我们不写编译器内置类型不处理,自定义类型调用它的析构和构造处理;

拷贝构造和赋值重载特性是类似的,内置类型会完成浅拷贝,自定义类型会调用他们的拷贝构造和赋值重载

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值