我是C ++编程的新手,想知道是否有人可以为我解决这个问题?

我将在此处使用一些示例来回答我的问题。

假设在我的主类中,我从Blue类创建了一个Bob对象,

Blue Bob("bob", 3);

Blue类具有一个“名称”和该类内部向量的大小。

现在让我们介绍另一个类Red,它具有四个参数并具有三个对象,

Red GasPoweredStick("M000", "It never runs out of gas!", 1, 40);
Red Ozone("AFXE", "Filler", 4, 3);
Red Jupiter("KCAT", "Planets make terrible dinner guests", 99, 191919);

我想将红色对象添加到Bob对象下的Blue类中的向量中,然后使用这些参数执行操作,

Bob.addItem(GasPoweredStick);
Bob.addItem(Ozone);
Bob.addItem(Jupiter);

导致此“ addItem”代码,

void Blue::addItem(Red&)
{
    Items.push_back(Red());
}

我认为我的问题在于上面的代码...问题是Red对象的参数信息默认为其构造函数的值,使它们全部为空白或0。而不是填充已创建对象的信息。 之所以无法自己解决却无法解决的原因是因为这是我正在从事的一项工作,但是我目前对c ++的学习并未提及此特定问题。 该代码是根据模板或先验知识创建的。

我对c ++没有太多经验,但是我猜想addItem函数并没有吸收创建的三个对象,而是每次我要求它推送一个新对象时都复制基本Red类。

我将不胜感激任何帮助! 我希望我足够清楚。 如果需要的话,我会尽力清除。

===============>>#1 票数:3

这行:

Items.push_back(Red());

您使用默认构造函数推回新创建的Red对象。 只需传递参考即可:

void Blue::addItem(const Red& r)
{
    Items.push_back(r);
}

===============>>#2 票数:0

您的Red类应具有复制构造函数和赋值运算符:

void Red::Red(const Red& other)
{
(*this) = other;
}

Red& Red::operator=(const Red& other)
{
this->Name = other.Name; 
// TODO: copy other fileds
return (*this);
}

  ask by Crazierinzane translate from so

未解决问题?本站智能推荐:

1回复

C ++将对象的向量复制到另一个

我想复制到具有相同大小和相同类型的向量,但是在打印该值后,它似乎无法正常工作,或者它不想将所有指针复制到每个对象中的数据。 感谢帮助 这是代码: 输出: 3 0 这是车辆代码
1回复

从一个向量的末尾向另一个向量的类实例添加指针

因此,在程序中有一个称为cardDeck的向量,其中包含多个指向Card类的实例的指针: 同样,还有一个称为charCards的第二个向量,其中也包含指向card类的实例的多个指针: 程序功能的一部分是从cardDeck向量的末尾到charCards向量的末尾添加指向卡片类实例的
2回复

如何在另一个类中调用类型为class的向量?

我得到了主程序,并被告知要使用3个类来响应主程序创建一个程序。 游乐园,骑手和乘车课程。 我想将骑手添加到游乐设施的向量中,并将该向量存储在游乐园的向量中。 我究竟做错了什么? 我怎样才能解决这个问题?
1回复

C ++访问类对象向量中的元素

我正在尝试访问类对象向量中的元素,但我没有把它弄好。 我想构造函数/解构函数和引用有问题,但即使是其他问题,如C ++析构函数问题,类对象的std :: vector,类对象指针的c ++向量或对象的 C ++向量与指向对象的指针向量 。 希望有人可以帮我修改我的代码片段。 node.
3回复

在C ++中,如何为向量中的每个元素创建一个新对象?

假设我有这个课: 然后,我有了一个搜索不相关内容的函数,并得到了未知数量的狗名: 因此,狗名列表可能类似于“ Spike,Spot,George,Shadow等”。 有什么聪明的方法可以去: 并获得一堆我可以调用并与狗名列表一起使用的dog对象?
2回复

C ++将类对象矢量向量保存到文件中

我有一个c ++类,如下所示: 现在在我的主程序中,我有一个类的3D矢量: 矢量的大小也是动态变化的。 我的问题是如何将我的矢量内容存储到文件中并在之后检索它? 我尝试过很多方法都没有成功。这是我的尝试: 阅读它: 我得到的只是runTime错误。
3回复

将对象指针的矢量传递给类(C ++)

我有一个对象指针向量。 我想将它们传递给另一个需要访问它们的对象。 当我尝试执行以下操作时: 然后在初始化列表中初始化向量,我得到以下错误: 我究竟做错了什么? 我要做的就是将向量传递给NeedsObjects类。
1回复

具有类对象的C ++向量push_back

我使用这个网站已有一段时间了,到目前为止,您再也不需要问一个新问题了(找到了到目前为止我所需要的所有答案)。 我需要将多个对象推入向量,但是VS抛出错误(这可能是由于堆损坏,这表明PVSS00DataGate.exe或它已加载的任何DLL中的错误),我似乎无法解决为了我自己。 这是我
1回复

如何将向量作为参数传递给另一个向量?

我在将对象向量传递到另一种不同类型的对象向量时遇到麻烦。 我正在尝试做的是使对象Partidas显示Producto类型的对象的数组或向量,以及一些其他属性,但这些属性是整数和字符串,而我对此没有问题。 当我运行程序时,按“ 0”完成las循环后,它标记为错误访问。 我知道代码有点长,但是
1回复

使用向量或某些其他方法来跟踪C ++ CLI中的类对象

关闭。 这个问题是题外话。 它当前不接受答案。 了解更多 。 想改善这个问题吗? 更新问