我创建了一个简单的类,它接受构造函数的参数,如下所示。
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
答案 0 :(得分:2)
[我很可能不明白你在问什么,但这里有...... ]
如果您不自己编写复制构造函数,编译器会提供复制构造函数。它的行为是依次复制每个成员变量。