我在堆上分配一个类对象,所以所有的数据成员都将堆在堆上。但是,如果我的类包含一些数据结构(例如std::vector
)为成员:将堆分配对象上的数据成员分配到堆还是堆栈上?
#include <vector>
class Temp
{
public:
std::vector<double> m_dPtList;
};
int main()
{
Temp* pTemp = new Temp;
pTemp->m_dPtList.Add(10.0);
pTemp->m_dPtList.Add(20.0);
pTemp->m_dPtList.Add(30.0);
return 0;
}
将值10.0
,20.0
,并30.0
被存储在堆或堆栈上?
它为什么重要?注意:堆和栈是与对象无关的实现细节(它不关心它在哪里,所以你应该)。 – 2011-01-07 14:12:11
[数据成员是否可以在与C++中的对象相同的内存空间中分配?](http://stackoverflow.com/questions/187797/are-data-members-allocated-in-the-same-memory- space-as-their-objects-in-c) – 2012-07-30 20:14:36