gcs*_*osh 0 c++ vector member copy-constructor
我有一个类A有vector<Object> object_list_一个成员变量。
我知道如果我有一个指针向量,我将需要编写一个特定的复制构造函数来实现深度复制。但是,在这种情况下,由于我没有指针,因此在复制 type 的对象时A,默认的复制构造函数也会自动调用Object或每个元素的复制构造函数,或者object_list_我是否必须编写自己的复制构造函数来执行此操作?
您的类的默认复制构造函数将按照它们在类中声明的顺序调用每个成员的默认复制构造函数。一条经验法则是,如果您不需要特殊的析构函数,那么您也不需要更改复制构造函数、复制赋值、移动构造函数或移动赋值。(尽管删除它们可能仍然有意义,具体取决于课程)。
vector 的复制构造函数将使用它们的复制构造函数复制其元素。如果这些是指针,它将复制指针,这意味着它们将指向与原始向量相同的数据。99% 的情况下,这就是您想要的。虽然很少你可能想要替换你的类的复制构造函数来让向量做其他事情。
听起来您不需要在您的情况下创建复制构造函数。
| 归档时间: |
|
| 查看次数: |
880 次 |
| 最近记录: |