<分区>
我有一个创建“计算机组件”并将其存储在 vector 中并将对象写入文件的程序。 如果我在堆栈上创建对象并将内存地址传递给 vector ,我会得到一个错误 如果我在堆上创建对象并将指针传递给 vector ,它就可以正常工作“组件是一个抽象基类”和“CPU 是组件的派生类”有人可以解释这是为什么吗?
vector<Component*>components;
CPU x;
CPU*y = new CPU();
components.push_back(&x) // results in debug error
components.push_back(y) // works fine.
writeTofile(components);