commit 2025-09-11 13:31 edit codes for ZtCList in ZCppMain/ZMainHead.H
This commit is contained in:
@ -4924,12 +4924,22 @@ namespace ZNsMain
|
|||||||
|
|
||||||
ZtCList()
|
ZtCList()
|
||||||
{
|
{
|
||||||
mp_HeadLink =0 ;
|
mp_HeadLink = 0 ;
|
||||||
mp_TailLink =0 ;
|
mp_TailLink = 0 ;
|
||||||
ml_LinkCnt =0 ;
|
ml_LinkCnt = 0 ;
|
||||||
}/*
|
}/*
|
||||||
ZtCList()*/
|
ZtCList()*/
|
||||||
|
|
||||||
|
ZtCList(const ZtCList& rhs)
|
||||||
|
{
|
||||||
|
mp_HeadLink = 0 ;
|
||||||
|
mp_TailLink = 0 ;
|
||||||
|
ml_LinkCnt = 0 ;
|
||||||
|
|
||||||
|
*this = (rhs);
|
||||||
|
}/*
|
||||||
|
ZtCList(const ZtCList& rhs)*/
|
||||||
|
|
||||||
~ZtCList()
|
~ZtCList()
|
||||||
{
|
{
|
||||||
DeleteAll();
|
DeleteAll();
|
||||||
@ -4937,6 +4947,28 @@ namespace ZNsMain
|
|||||||
~ZtCList()*/
|
~ZtCList()*/
|
||||||
|
|
||||||
|
|
||||||
|
ZtCList& operator=(const ZtCList& rhs)
|
||||||
|
{
|
||||||
|
if(this==&rhs) return *this;
|
||||||
|
|
||||||
|
|
||||||
|
this->DeleteAll();
|
||||||
|
{
|
||||||
|
ZCLink* VP_NowLink = rhs.mp_HeadLink ;
|
||||||
|
|
||||||
|
__for0(TypeSize, i, rhs.size())
|
||||||
|
{
|
||||||
|
this->AddHead(VP_NowLink->mo_Data) ;
|
||||||
|
|
||||||
|
VP_NowLink = VP_NowLink->mp_NextLink;
|
||||||
|
}/*
|
||||||
|
__for0(TypeSize, i, rhs.size())*/
|
||||||
|
}
|
||||||
|
rhs. DeleteAll();
|
||||||
|
}/*
|
||||||
|
ZtCList& operator=(const ZtCList& rhs)*/
|
||||||
|
|
||||||
|
|
||||||
void DeleteAll()
|
void DeleteAll()
|
||||||
{
|
{
|
||||||
ZCLink* VP_NowLink = mp_HeadLink;
|
ZCLink* VP_NowLink = mp_HeadLink;
|
||||||
|
@ -231,6 +231,15 @@ namespace ZNsMain
|
|||||||
TypeSize ml_Size ;
|
TypeSize ml_Size ;
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
|
||||||
|
void OnDelete(ZCLink* AP_CutLink)
|
||||||
|
{
|
||||||
|
if(TypeInit::EUseFini<1) return;
|
||||||
|
|
||||||
|
TypeInit::OnFini(AP_CutLink->mo_Data, *this) ;
|
||||||
|
}
|
||||||
|
/*############################################################*/
|
||||||
|
|
||||||
void OnDelete /*//////////////////////////////////////////////*/
|
void OnDelete /*//////////////////////////////////////////////*/
|
||||||
(
|
(
|
||||||
ZCLink* AP_CutHead, TypeSize AI_CutHeadPos,
|
ZCLink* AP_CutHead, TypeSize AI_CutHeadPos,
|
||||||
@ -238,9 +247,6 @@ namespace ZNsMain
|
|||||||
)
|
)
|
||||||
/*############################################################*/
|
/*############################################################*/
|
||||||
{
|
{
|
||||||
// 상속클래스에서 추가된 멤버 데이타가 링크의 삭제시 변해야
|
|
||||||
// 하는 값이라면, 이 함수를 overload 하여 값을 조종한다.
|
|
||||||
|
|
||||||
if(TypeInit::EUseFini<1) return;
|
if(TypeInit::EUseFini<1) return;
|
||||||
|
|
||||||
TypeSize VL_LoopCnt = AI_CutTailPos-AI_CutHeadPos+1 ;
|
TypeSize VL_LoopCnt = AI_CutTailPos-AI_CutHeadPos+1 ;
|
||||||
@ -343,6 +349,19 @@ namespace ZNsMain
|
|||||||
|
|
||||||
if(AO_CObjList.ml_Size<1) return;
|
if(AO_CObjList.ml_Size<1) return;
|
||||||
|
|
||||||
|
AO_CObjList.OnDelete ////////////////////////
|
||||||
|
(
|
||||||
|
AO_CObjList.mp_HeadLink , 1 ,
|
||||||
|
AO_CObjList.mp_HeadLink->mp_PrevLink, AO_CObjList.ml_Size
|
||||||
|
);
|
||||||
|
/*/////////////////////////////////////////*/
|
||||||
|
|
||||||
|
this->OnInsert //////////////////////////////
|
||||||
|
(
|
||||||
|
this->ml_Size+1, AO_CObjList.ml_Size, AO_CObjList.mp_HeadLink
|
||||||
|
);
|
||||||
|
/*/////////////////////////////////////////*/
|
||||||
|
|
||||||
if(AP_LinkStd==0)
|
if(AP_LinkStd==0)
|
||||||
{
|
{
|
||||||
if(ml_Size==0)
|
if(ml_Size==0)
|
||||||
@ -381,9 +400,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
protected: ZCLink* CutLink(ZCLink* AP_CutLink)
|
protected: ZCLink* CutLink(ZCLink* AP_CutLink)
|
||||||
{
|
{
|
||||||
// 삭제하려는 링크의 위치값을 알 수 없으므로 모든 링크를 삭제한다는 신호를 보낸다.
|
OnDelete(AP_CutLink);
|
||||||
|
|
||||||
OnDelete(mp_HeadLink, 1, mp_HeadLink->mp_PrevLink, ml_Size);
|
|
||||||
|
|
||||||
if(AP_CutLink==mp_HeadLink)
|
if(AP_CutLink==mp_HeadLink)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user