复制初始化和直接初始化在C ++之间有区别吗?
复制初始化可以使用复制构造函数的概念来完成。众所周知,构造函数用于初始化对象。我们可以创建副本构造函数来制作其他对象的副本,换句话说,用另一个对象的值初始化当前对象。另一方面,可以使用赋值操作完成直接初始化。
这两种初始化类型之间的主要区别在于,副本初始化为新对象创建了一个单独的存储块。但是直接初始化不会增加新的内存空间。它使用引用变量指向前一个存储块。
复制构造函数或复制初始化(语法)
classname (const classname &obj) { //构造函数的主体 }
直接初始化或赋值运算符(语法)
classname Ob1, Ob2; Ob2 = Ob1;
让我们看看复制初始化和直接初始化之间的详细区别。