//-------------------------------------------- //Parameters: // return: // Memo: 将this工况的子工况保存的父工况改为this // //--------------------------------------------- void Scenario::ChangeAncestor() { POSITION pos = m_childList.GetHeadPosition(); Scenario *pChild = NULL; while(pos) { pChild = m_childList.GetNext(pos); pChild->m_pAnScenario = this; pChild->ChangeAncestor(); } }
//-------------------------------------------- //Parameters: strName[In] 工况名称 // return: 当前增加的工况 // Memo: 复制this工况包括子孙工况增加一个名称为strName的兄弟工况 // //--------------------------------------------- Scenario * Scenario::CloneWithChild(CString strName) { Scenario *pClone = CloneWithOutChild(strName); POSITION pos = m_childList.GetHeadPosition(); Scenario *pChild = NULL; while(pos) { pChild = m_childList.GetNext(pos); pClone->m_childList.AddTail(new Scenario(*pChild)); } pClone->ChangeAncestor(); return pClone; }