希望我的代码不要太愚蠢......
Index::Index() : m_first(""), m_count(0)
{
m_ll = new LinkedList;
}
void TestClass::testMethod()
{
if (getIndex(i).getCount() != 0)
{
//do stuff
}
}
Index TestClass::getIndex(int num) const
{
return m_index[num];
}
Index::~Index()
{
delete m_ll;
}
这是真正涉及崩溃的代码。当我输入testMethod时,我有m_index [num],它包含一个指向m_ll的指针。它们完全有效。它返回m_index [num]之后,即使m_index [num]仍在使用中,它也会进入析构函数,因此我的程序崩溃了。我不明白为什么这么早就会调用析构函数。
答案 0 :(得分:2)
dtor调用delete
,getIndex
按值返回。我的水晶球告诉我Index::Index()
来电new
但Index::Index(Index const&)
没有。{/ p>