我创建了一个简单的类,它为构造函数提供一个参数,如下所示。
class Jam
{
int age;
std::string name;
Jam *jam;
Jam(std::string argName) {
name = argName;
}
};
它接受参数并将Jam
's初始化为name
传递的参数。唯一的问题是我希望能够将另一个副本传递Jam
给构造函数,这样我就可以通过复制值来初始化其指向现有类的指针。通常在 C++ 中你可以指定Jam *jam = new Jam(existingJam);
它,默认情况下它会被复制,但由于我已经有std::string argName
一个参数,它拒绝让我这样做。
我在这里阅读了一篇文章,解释了如何创建自己的复制构造函数,但它相当乏味并且涉及单独复制每个类成员,这对于具有 10 多个数据成员的类似乎没有多大意义。有没有比单独初始化每个成员更好的方法呢?
Jam::Jam(std::string argName, Jam *argJam)
{
age = argJam->age;
//etc...
}