【发布时间】:2020-04-09 22:28:54
【问题描述】:
我有这个程序,它创建“计算机组件”并将其存储在向量中并将对象写入文件。 如果我在堆栈上创建对象并将内存地址传递给向量,则会出现错误 如果我在堆上创建对象并将指针传递给向量它就可以正常工作“组件是抽象基类”和“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);
【问题讨论】:
-
您得到的“调试错误”是什么?还有什么是
Object,它与CPU有什么关系? -
要获得有意义的答案,您应该提供MCVE,即一个最小的完整可验证示例。
标签: c++ object stack heap-memory