使用类的参数创建复制构造函数

时间:2012-07-21 12:11:09

标签: c++ class constructor copy

我创建了一个简单的类,它接受构造函数的参数,如下所示。

class Jam
{
     int age;
     std::string name;
     Jam *jam;

     Jam(std::string argName) {
          name = argName;
     }
};

接受参数并将Jam的{​​{1}}初始化为传递的参数。唯一的问题是我希望能够将name的另一个副本传递给构造函数,这样我就可以通过复制值来初始化其指向现有类的指针。通常在C ++中你可以指定Jam并默认复制它,但由于我已经有Jam *jam = new Jam(existingJam);作为参数,它拒绝让我这样做。

我读了一篇文章here,解释了如何创建自己的复制构造函数,但它相当繁琐,并涉及单独复制每个类成员,这似乎对于具有10+数据的类没有多大意义成员。有没有比单独初始化每个成员更好的方法呢?

std::string argName

1 个答案:

答案 0 :(得分:2)

[我很可能不明白你在问什么,但这里有...... ]

如果您不自己编写复制构造函数,编译器会提供复制构造函数。它的行为是依次复制每个成员变量。