gpt4 book ai didi

c++ - 为类创建带参数的复制构造函数

转载 作者:行者123 更新时间:2023-11-28 03:34:08 24 4
gpt4 key购买 nike

我创建了一个简单的类,该类将参数传递给构造函数,如下所示。

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

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

它接受参数并将 Jamname 初始化为传递的参数。唯一的问题是我希望能够将 Jam 的另一个拷贝传递给构造函数,这样我就可以通过复制值来初始化它指向现有类的指针。通常在 C++ 中你可以指定 Jam *jam = new Jam(existingJam); 并且默认情况下它会被复制,但是因为我已经有 std::string argName 作为参数,它拒绝让我这样做。

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

Jam::Jam(std::string argName, Jam *argJam)
{
age = argJam->age;
//etc...
}

最佳答案

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

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

关于c++ - 为类创建带参数的复制构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11592052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com