gpt4 book ai didi

c++ - vector 不适用于我的类(class)

转载 作者:行者123 更新时间:2023-11-28 05:46:15 24 4
gpt4 key购买 nike

谁能解释一下我做错了什么:我有一个类MClassMClass2 (MClass : public MClass2 {}),如下:

vector <MClass> mdata;
MClass2 *Mbuff = new MClass2;

以下作品

Mbuff->loadData(/*some data*/); //this works; I can print data from Mbuff

但是,这不会:

mdata.push_back(*Mbuff); //this doesn't work... I can't print data from mdata

为什么不呢?

最佳答案

如果确实 MClass 继承自 MClass2,正如您似乎建议通过编写 MClass : public MClass2 {},那么您不能将一个MClass2 对象作为 MClass 对象,但相反。

(同样,如果您有 Class Dog : public Animal,您可以将 Dogs 视为 Animals,但不能将 Animals 视为 Dogs。)

因此,由于 *Mbuff 是一个 MClass2 对象,您不能将它放在 MClass 对象的 vector 中。

但是您需要更具体地说明“这不起作用”是什么意思。

关于c++ - vector 不适用于我的类(class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36137765/

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