复制构造函数是一个特殊的构造函数,当将类对象分配给另一类对象时,该构造函数被称为。如果未重写复制构造函数,则编译器将自动生成。复制构造函数已重写。编译器不会生成默认复制构造函数。默认的构造函数编译器不会自动生成。程序员需要单独编写它。复制构造函数通常用于深层复制(如果需要重写类的内部使用).grammar:class Name(const class class name&act clast name&act name name){function body}
C ++类的构造函数由类型进行分类:分为正常的结构函数和复制构造函数(复制构造函数)
关于使用匿名对象调用复制构造函数:
b是a的实例化对象之间的差异,a = a(b)和a(b)之间的差异?当a(b)有一个实例化对象接收时,编译器认为他是匿名对象;当没有可拾取的变量时,编译器认为您的A(b)等同于B。
提示:无法调用复制构造函数来初始化匿名对象。该示例如下:
显式用于修改构造函数以防止隐藏转换。它主要用于单个参数的构造函数(或具有默认值的多参数结构,除第一个参数外)。在结构中限制了:类对象实体= initiality =初始化,此格式是初始化的。
数据结构如下:
在VS2017的调试模式下,在VS2017的发行模式下调用复制构造函数,不调用复制构造函数
提示:test3()指示编译器将在编译过程中优化复制构造函数的调用。version:本文是CSDN Blogger [ufgnix0802]的原始文章。QQ135595696/Article/详细信息/119851208)
原始:https://juejin.cn/post/7095288132421025822