C ++中的赋值运算符和复制构造函数有什么区别?
复制构造函数和赋值运算符用于将一个对象初始化为另一个对象。它们之间的主要区别是复制构造函数为新对象创建了一个单独的内存块。但是赋值运算符不会腾出新的内存空间。它使用引用变量指向前一个存储块。
复制构造函数(语法)
classname (const classname &obj) { //构造函数的主体 }
赋值运算符(语法)
classname Ob1, Ob2; Ob2 = Ob1;
让我们看看复制构造函数和赋值运算符之间的详细区别。
复制构造函数和赋值运算符用于将一个对象初始化为另一个对象。它们之间的主要区别是复制构造函数为新对象创建了一个单独的内存块。但是赋值运算符不会腾出新的内存空间。它使用引用变量指向前一个存储块。
classname (const classname &obj) { //构造函数的主体 }
classname Ob1, Ob2; Ob2 = Ob1;
让我们看看复制构造函数和赋值运算符之间的详细区别。