关于拷贝构造函数的3个问题

简介: 关于拷贝构造函数的3个问题

问题1:拷贝构造函数与赋值运算的区别?

拷贝构造完成的是 初始化 的工作,即只能进行一次。赋值运算可以进行多次。

拷贝构造是创造一个自定义类型的对象,赋值运算是对已经存在的对象进行赋值。

问题2:拷贝构造函数的形参为什么是引用?

拷贝构造函数存在于哪里?存在于类中。是类中六大默认成员函数之一。

以Date类为例,其拷贝构造函数写作

现在我们假设,形参是 const Date d。形参的类型是自定义类型Date。与内置类型不同的是,内置类型的初始化拷贝可以按字节赋值拷贝,而自定义类型初始化拷贝的规则我们是不知道的,因此需要调用它的拷贝构造函数。由于自定义类型对象的赋值拷贝(指初始化的时候)要调用其拷贝构造函数,所以拷贝构造函数的形参应该用引用。

问题3:类中生成的 默认 拷贝构造函数是怎样的

按字节序的浅拷贝。

相关文章
|
2月前
|
C++
C++(八)拷贝构造器
拷贝构造器用于根据已存在的对象创建新对象。其格式固定,系统提供默认的浅拷贝构造器。浅拷贝仅复制指针而非指针指向的对象,适用于所有数据位于栈上的情况;若类中包含堆数据,则需自定义深拷贝以避免多次析构问题。拷贝构造器在对象复制、作为参数或返回值时被调用。示例展示了拷贝构造器的应用及浅拷贝与深拷贝的区别。
|
4月前
|
存储 编译器 C++
【C++】详解拷贝构造
【C++】详解拷贝构造
|
6月前
|
C++
C++中拷贝构造会出现的情况
C++中拷贝构造会出现的情况
32 3
|
6月前
|
存储 编译器 C++
【c++】拷贝构造函数
【c++】拷贝构造函数
【c++】拷贝构造函数
|
6月前
拷贝构造函数与移动构造函数
拷贝构造函数与移动构造函数
78 0
|
编译器
拷贝构造函数和运算符重载(下)
拷贝构造函数和运算符重载(下)
|
存储 编译器 C++
拷贝构造函数和运算符重载(上)
拷贝构造函数和运算符重载(上)
|
编译器 C++
【C++】-- 构造函数、析构函数、拷贝构造函数、赋值运算符重载函数(一)
【C++】-- 构造函数、析构函数、拷贝构造函数、赋值运算符重载函数
【C++】-- 构造函数、析构函数、拷贝构造函数、赋值运算符重载函数(一)
|
编译器 C++
【C++】-- 构造函数、析构函数、拷贝构造函数、赋值运算符重载函数(三)
【C++】-- 构造函数、析构函数、拷贝构造函数、赋值运算符重载函数
113 0
【C++】-- 构造函数、析构函数、拷贝构造函数、赋值运算符重载函数(三)
|
编译器 C++
【C++】-- 构造函数、析构函数、拷贝构造函数、赋值运算符重载函数(二)
【C++】-- 构造函数、析构函数、拷贝构造函数、赋值运算符重载函数
【C++】-- 构造函数、析构函数、拷贝构造函数、赋值运算符重载函数(二)