From 2b4596b065358b7a16848096f6123c19bf545da6 Mon Sep 17 00:00:00 2001 From: sauron Date: Wed, 15 Oct 2025 14:13:41 +0900 Subject: [PATCH] commit 2025-10-15 14:13 TypeDataMaIN => TypeDataCore : ZCppMain/ZtCLinkList.H --- ZCppMain/ZtCLinkList.H | 52 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 19 deletions(-) diff --git a/ZCppMain/ZtCLinkList.H b/ZCppMain/ZtCLinkList.H index 03cba41..9258c9e 100644 --- a/ZCppMain/ZtCLinkList.H +++ b/ZCppMain/ZtCLinkList.H @@ -1006,16 +1006,16 @@ namespace ZNsMain typedef typename ZCTypeNowCRTP::TypeData TypeChild; /*************************************************************************/ - typedef typename TCLink::TypeData TypeDataMain ; - typedef const TypeDataMain TypeDataMainC; + typedef typename TCLink::TypeData TypeDataCore ; + typedef const TypeDataCore TypeDataCoreC; /*///////////////////////////////////////////////////////////////////////// - ■ TCLink::TypeData (TypeDataMain) + ■ TCLink::TypeData (TypeDataCore) TCLink 에 상속 클래스 자료형이 지정되어 있다면 그 상속 클래스. TCLink 에 기반 클래스 자료형만 지정되어 있다면 그 기반 클래스. - ItD() 에서 TypeDataMain 을 사용한다. -- 2025-10-15 13:16 + ItD() 에서 TypeDataCore 을 사용한다. -- 2025-10-15 13:16 /////////////////////////////////////////////////////////////////////////*/ public : @@ -1046,8 +1046,22 @@ namespace ZNsMain typedef TypeIterN iteratorN ; /*************************************************************************/ - public : + /*************************************************************************/ typedef typename TCLink::TypeMain TypeMain; + /************************************************************************** + + ZNsIFaceEx::ZtCLink 는 TypeMain 이라는 자료형을 갖는데, ZtCLink 이 + + 상속 클래스가 있다면, 그 상속 클래스 + 상속 클래스가 없다면, 클래스 자기 자신 + + 를 나타낸다. 그래서 ZtCLinkList 에서 new 로 객체를 만들 때, + + ZtCLink* my = new TypeMain; + + 처럼 쓸 수 있게 한다. -- 2025-10-07 17:49 + + /////////////////////////////////////////////////////////////////////////*/ private: ZCLink* mp_HeadLink; ZCLink* mp_TailLink; @@ -2788,7 +2802,7 @@ namespace ZNsMain IterEasyIDc ItTIDc () const{return GetTailIterEasyIDc();} - void ItNext(TypeLink* & APR_CLink ) const + void ItNext(TypeLink * & APR_CLink ) const { APR_CLink=APR_CLink->GetNextPtr(); } void ItNext(IterEasyID & ARRI_IterEasyID ) const { ItNext((ZCLink*&)(ARRI_IterEasyID)); } @@ -2799,7 +2813,7 @@ namespace ZNsMain void ItNext(iterator & ARR_Iterator ) const{++ARR_Iterator;} void ItNext(iteratorN & ARR_Iterator ) const{++ARR_Iterator;} - void ItPrev(ZCLink* & APR_CLink ) const + void ItPrev(TypeLink * & APR_CLink ) const { APR_CLink=APR_CLink->GetPrevPtr(); } void ItPrev(IterEasyID & ARRI_IterEasyID ) const { ItPrev((ZCLink*&)(ARRI_IterEasyID)); } @@ -2811,21 +2825,21 @@ namespace ZNsMain void ItPrev(iteratorN & ARR_Iterator ) const{--ARR_Iterator;} - TypeDataMain & ItD(TypeLink * AP_Link ) {return **AP_Link;} - TypeDataMain & ItD(IterEasyID AH_IterEasyID ) {return **(TypeLink *)(AH_IterEasyID);} - TypeDataMain & ItD(iterator & ARR_Iterator ) {return **ARR_Iterator;} + TypeDataCore & ItD(TypeLink * AP_Link ) {return **AP_Link;} + TypeDataCore & ItD(IterEasyID AH_IterEasyID ) {return **(TypeLink *)(AH_IterEasyID);} + TypeDataCore & ItD(iterator & ARR_Iterator ) {return **ARR_Iterator;} - TypeDataMainC& ItD(TypeLinkC * AP_Link ) const{return **AP_Link;} - TypeDataMainC& ItD(IterEasyIDc AH_IterEasyID ) const{return **(TypeLinkC*)(AH_IterEasyID);} - TypeDataMainC& ItD(iteratorN & ARR_Iterator ) const{return **ARR_Iterator;} + TypeDataCoreC& ItD(TypeLinkC * AP_Link ) const{return **AP_Link;} + TypeDataCoreC& ItD(IterEasyIDc AH_IterEasyID ) const{return **(TypeLinkC*)(AH_IterEasyID);} + TypeDataCoreC& ItD(iteratorN & ARR_Iterator ) const{return **ARR_Iterator;} - TypeDataMain & ItD(TypeLink * AP_Link , TypeSize AI_FarNum) {return *((*AP_Link)+AI_FarNum);} - TypeDataMain & ItD(IterEasyID AH_IterEasyID, TypeSize AI_FarNum) {return *(((TypeLink *)(AH_IterEasyID))+AI_FarNum);} - TypeDataMain & ItD(iterator & ARR_Iterator , TypeSize AI_FarNum) {return *(ARR_Iterator.GetNode()+AI_FarNum);} + TypeDataCore & ItD(TypeLink * AP_Link , TypeSize AI_FarNum) {return *((*AP_Link)+AI_FarNum);} + TypeDataCore & ItD(IterEasyID AH_IterEasyID, TypeSize AI_FarNum) {return *(((TypeLink *)(AH_IterEasyID))+AI_FarNum);} + TypeDataCore & ItD(iterator & ARR_Iterator , TypeSize AI_FarNum) {return *(ARR_Iterator.GetNode()+AI_FarNum);} - TypeDataMainC& ItD(TypeLinkC * AP_Link , TypeSize AI_FarNum) const{return *((*AP_Link)+AI_FarNum);} - TypeDataMainC& ItD(IterEasyIDc AH_IterEasyID, TypeSize AI_FarNum) const{return *(((TypeLinkC*)(AH_IterEasyID))+AI_FarNum);} - TypeDataMainC& ItD(iteratorN & ARR_Iterator , TypeSize AI_FarNum) const{return *(ARR_Iterator.GetNode()+AI_FarNum);} + TypeDataCoreC& ItD(TypeLinkC * AP_Link , TypeSize AI_FarNum) const{return *((*AP_Link)+AI_FarNum);} + TypeDataCoreC& ItD(IterEasyIDc AH_IterEasyID, TypeSize AI_FarNum) const{return *(((TypeLinkC*)(AH_IterEasyID))+AI_FarNum);} + TypeDataCoreC& ItD(iteratorN & ARR_Iterator , TypeSize AI_FarNum) const{return *(ARR_Iterator.GetNode()+AI_FarNum);} public :