#include #include "ZCppMain/ZtCStringEx.H" using namespace std ; using namespace ZNsMain ; namespace ZNsMain { namespace ZNsExam { template class ZtCExamCList { public: class CHelpObj { public: CHelpObj() { cout<<"* CHelpObj()"< CStringBase ; typedef const CStringBase CStringBaseC; /* 아래 자료형에 대해, CStringBase::Fetch() 호출 여부 실험. ZtCBaseList ZtCBaseList */ typedef ZtCBaseList CStringList1 ; typedef ZtCBaseList CStringList2 ; public: class ZCBaseListEx10 : public ZtCBaseList < CStringBase, CStringBase&, ZCAllocator, ZTypLong , ZNsMain::ZtCMoveObj , ZNsType::ZtCTypeCRTP > { public : typedef ZtCBaseList /////////////////////////////////////////////////////// < CStringBase, CStringBase&, ZCAllocator, ZTypLong , ZNsMain::ZtCMoveObj , ZNsType::ZtCTypeCRTP > ZCBaseList; /////////////////////////////////////////////////////////////// friend class ZtCBaseList ////////////////////////////////////////////////// < CStringBase, CStringBase&, ZCAllocator, ZTypLong , ZNsMain::ZtCMoveObj , ZNsType::ZtCTypeCRTP >; /////////////////////////////////////////////////////////////////////////// typedef typename ZCBaseList::ZCLink ZCLink; public : _VT_ ZTypLong capacity() const { cout<<"[ZCBaseListEx10 : capacity()]"; return 0; }/* _VT_ ZTypLong capacity() const*/ _VT_ ZTypLong size_free() const { cout<<"[ZCBaseListEx10 : size_free()]"; return 0; }/* _VT_ ZTypLong size_free() const*/ private: _VT_ ZCLink* SendFreeOut() { cout<<"** ZCBaseListEx10 : SendFreeOut()"<ZCBaseList::NewLink(); }/* _VT_ ZCLink* SendFreeOut()*/ _VT_ ZCLink* SendFreeOut(CStringBase& AO_ArgData) { cout<<"** ZCBaseListEx10 : SendFreeOut(TypeArg)"<ZCBaseList::NewLink(AO_ArgData); }/* _VT_ ZCLink* SendFreeOut(CStringBase& AO_ArgData)*/ _VT_ void SendFreeOut (ZTypLong AL_NeedCnt, ZCLink*& APR_HeadLink, ZCLink*& APR_TailLink) { cout<<"** ZCBaseListEx10 : SendFreeOut("<ZCBaseList::NewLink(AL_NeedCnt, APR_HeadLink, APR_TailLink); } _VT_ void SendFreeOutCopy /*///////////////////////*/ ( ZCLink* AP_LinkOrgin, ZTypLong AL_FarNum , ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy ) ///////////////////////////////////////////////////// { cout<<"** ZCBaseListEx10 : SendFreeOut(ZCLink*, "<ZCBaseList::NewLinkCopy(AP_LinkOrgin, AL_FarNum, APR_HeadCopy, APR_TailCopy); } _VT_ void RecvFreeIn(ZCLink* AP_DelLink) { cout<<"** ZCBaseListEx10 : RecvFreeIn(AP_DelLink)"<ZCBaseList::DelLink(AP_DelLink); }/* _VT_ void RecvFreeIn(ZCLink* AP_DelLink)*/ _VT_ void RecvFreeIn ////////////////////////////////// ( ZTypLong AL_CutCnt , ZCLink* AP_CutHead, ZCLink* AP_CutTail ) /////////////////////////////////////////////////////// { cout<<"** ZCBaseListEx10 : RecvFreeIn("<ZCBaseList::DelLink(AL_CutCnt, AP_CutHead, AP_CutTail); } private: };/* class ZCBaseListEx10 : public ZtCBaseList*/ class ZCBaseListEx11 : public ZtCBaseList < CStringBase, CStringBase&, ZCAllocator, ZTypLong , ZNsMain::ZtCMoveObj , ZNsType::ZtCTypeCRTP > { public : typedef ZtCBaseList /////////////////////////////////////////////////////// < CStringBase, CStringBase&, ZCAllocator, ZTypLong , ZNsMain::ZtCMoveObj , ZNsType::ZtCTypeCRTP > ZCBaseList; /////////////////////////////////////////////////////////////// friend class ZtCBaseList ////////////////////////////////////////////////// < CStringBase, CStringBase&, ZCAllocator, ZTypLong , ZNsMain::ZtCMoveObj , ZNsType::ZtCTypeCRTP >; /////////////////////////////////////////////////////////////////////////// typedef typename ZCBaseList::ZCLink ZCLink; public : _VT_ ZTypLong capacity() const { cout<<"[ZCBaseListEx11 : capacity()]"; return 0; }/* _VT_ ZTypLong capacity() const*/ _VT_ ZTypLong size_free() const { cout<<"[ZCBaseListEx11 : size_free()]"; return 0; }/* _VT_ ZTypLong size_free() const*/ private: _VT_ ZCLink* SendFreeOut() { cout<<"** ZCBaseListEx11 : SendFreeOut()"<ZCBaseList::NewLink(); }/* _VT_ ZCLink* SendFreeOut()*/ _VT_ ZCLink* SendFreeOut(CStringBase& AO_ArgData) { cout<<"** ZCBaseListEx11 : SendFreeOut(CStringBase&)"<ZCBaseList::NewLink(AO_ArgData); }/* _VT_ ZCLink* SendFreeOut(CStringBase& AO_ArgData)*/ _VT_ void SendFreeOut (ZTypLong AL_NeedCnt, ZCLink*& APR_HeadLink, ZCLink*& APR_TailLink) { cout<<"** ZCBaseListEx11 : SendFreeOut("<ZCBaseList::NewLink(AL_NeedCnt, APR_HeadLink, APR_TailLink); } _VT_ void SendFreeOutCopy /*///////////////////////*/ ( ZCLink* AP_LinkOrgin, ZTypLong AL_FarNum , ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy ) ///////////////////////////////////////////////////// { cout<<"** ZCBaseListEx11 : SendFreeOut(ZCLink*, "<ZCBaseList::NewLinkCopy(AP_LinkOrgin, AL_FarNum, APR_HeadCopy, APR_TailCopy); } _VT_ void RecvFreeIn(ZCLink* AP_DelLink) { cout<<"** ZCBaseListEx11 : RecvFreeIn(AP_DelLink)"<ZCBaseList::DelLink(AP_DelLink); }/* _VT_ void RecvFreeIn(ZCLink* AP_DelLink)*/ _VT_ void RecvFreeIn ////////////////////////////////// ( ZTypLong AL_CutCnt , ZCLink* AP_CutHead, ZCLink* AP_CutTail ) /////////////////////////////////////////////////////// { cout<<"** ZCBaseListEx11: RecvFreeIn("<ZCBaseList::DelLink(AL_CutCnt, AP_CutHead, AP_CutTail); } private: };/* class ZCBaseListEx11 : public ZtCBaseList*/ static void ShowDataInNode(const CStringBase& AR_Data) { cout<<"* Data : "< CIntList; CHelpObj VO_CHelpObj; CIntList VO_CIntList; VO_CIntList.AddTail(10); VO_CIntList.AddTail(20); VO_CIntList.AddTail(30); VO_CIntList.AddTail(40); cout<