在C ++中复制构造函数与赋值运算符
构造函数" title="复制构造函数">复制构造函数和赋值运算符用于将一个对象初始化为另一对象。它们之间的主要区别是复制构造函数为新对象创建了一个单独的内存块。但是赋值运算符不会腾出新的内存空间。它使用引用变量指向前一个存储块。
复制构造函数(语法)
classname (const classname &obj) {// body of constructor
}
赋值运算符(语法)
classname Ob1, Ob2;Ob2 = Ob1;
让我们看看复制构造函数和赋值运算符之间的详细区别。
复制构造函数 | 赋值运算符 |
---|---|
复制构造函数基本上是一个重载的构造函数 | 分配运算符基本上是一个运算符。 |
这将使用现有对象初始化新对象 | 这会将一个对象的值分配给两个都已经存在的对象。 |
在使用现有对象创建新对象时使用复制构造函数 | 当我们要将现有对象分配给新对象时,使用此运算符。 |
这两个对象使用单独的内存位置。 | 使用了一个存储位置,但是不同的引用变量指向同一位置。 |
如果在类中未定义副本构造函数,则编译器将提供一个副本构造函数。 | 如果赋值运算符未过载,则将按位复制 |
以上是 在C ++中复制构造函数与赋值运算符 的全部内容, 来源链接: utcz.com/z/322503.html