0

我是一名主要从事 Python 切换到 C++ 的程序员。我掌握了指针和内存分配的窍门,但我已经阅读了一些关于复制构造函数的解释,但我不明白它们是什么。

你能解释一下,什么是复制构造函数,我什么时候需要使用它?

4

1 回答 1

3

http://www.cplusplus.com/articles/y8hv0pDG/

什么是复制构造函数?

复制构造函数是用于复制现有实例的类/结构的特殊构造函数。根据 C++ 标准,MyClass 的复制构造函数必须具有以下签名之一:

MyClass( const MyClass& other );
MyClass( MyClass& other );
MyClass( volatile const MyClass& other );
MyClass( volatile MyClass& other );

什么时候需要编写复制构造函数?

首先,您应该了解,如果您不声明复制构造函数,编译器会隐式地为您提供一个。隐式复制构造函数对源对象进行逐个成员的复制。

[...]

在许多情况下,这已经足够了。但是,在某些情况下,会员副本版本不够好。到目前为止,默认复制构造函数不够用的最常见原因是对象包含原始指针,您需要获取指针的“深度”副本。也就是说,您不想复制指针本身;相反,您想复制指针指向的内容。

于 2013-05-16T22:08:03.003 回答