哎嘿| 2022-09-18 18:33 采纳率: 75%
浏览 695
已结题

多态循环调用子类函数,总是在最后一个闪退,提示Unable to step next. Operation failed with error code 0x80004004.

多态循环调用子类函数,总是在最后一个闪退,提示Unable to step next. Operation failed with error code 0x80004004.
        for (int i = 0; i < this->m_EmpNum; i++)
        {
            // 多态调用接口
            this->m_EmpArry[i]->showInfo();
        }
void Employee::showInfo()
{
    cout << "职工编号:" << this->m_Data.m_ID;
    cout << "\t职工姓名:" << this->m_Data.m_Name;
    cout << "\t职工性别:" << ((this->m_Data.m_Sex) ? "男" : "女");
    cout << "\t职工岗位:" << this->getDeptName()
         << "\t岗位职责:完成经理交给的任务" << endl;
}

运行结果及报错内容

img

img

img

Unable to step next. Operation failed with error code 0x80004004.

img

每次到最后一个数据的时候会出错

  • 写回答

2条回答 默认 最新

  • _GX_ 2022-09-18 19:31
    关注

    从你截图第一张图中的代码片段,可以看出第183行delete temp已经删除最后一个数组元素,数组最后一个元素存的指针变成野指针,当你再次访问它时,程序就会崩溃
    解决方法是删除delete temp;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月26日
  • 已采纳回答 9月18日
  • 创建了问题 9月18日