commit 2025-10-15 14:53 edit a bit ZCppMain/ZtCLinkList.H

This commit is contained in:
2025-10-15 14:53:07 +09:00
parent 2b4596b065
commit 721d26ca5e

View File

@ -17,6 +17,73 @@
-- 2025-10-06 15:22 -- 2025-10-06 15:22
ZNsIFaceEx::ZtCLink 의 상속 클래스를 아래로 선언하고
class ZCLinkData :
public ZNsIFaceEx::ZtCLink<ZCEmpty, ZCLinkData>
typedef ZNsIFaceEx::ZtCLink
<ZCEmpty, ZCLinkData> ZCLinkBase;
ZtCLinkList 의 template 인수에 기반 클래스 ZCLinkBase 를 지정한 예.
class ZCLinkData : public ZNsIFaceEx::ZtCLink<ZCEmpty, ZCLinkData>
{
private:
string mo_DataCStr;
private:
static int SI_CallCnt;
public :
typedef ZNsIFaceEx::ZtCLink<ZCEmpty, ZCLinkData> TypeBase;
public :
ZCLinkData() : ZNsIFaceEx::ZtCLink<ZCEmpty, ZCLinkData>()
{
cout<<"* ZCLinkData() : "<<++ZCLinkData::SI_CallCnt<<endl;
}
ZCLinkData(const ZCLinkData& rhs) :
ZNsIFaceEx::
ZtCLink<ZCEmpty, ZCLinkData>(),
mo_DataCStr(rhs.mo_DataCStr)
{cout<<"* ZCLinkData(const ZCLinkData& rhs) : "<<++ZCLinkData::SI_CallCnt<<endl;}
ZCLinkData(const TypeBase& rhs) :
ZNsIFaceEx::
ZtCLink<ZCEmpty, ZCLinkData>(),
mo_DataCStr
(
(*static_cast<const ZCLinkData*>(&rhs)).mo_DataCStr
)
{cout<<"* ZCLinkData(const TypeBase& rhs) : "<<++ZCLinkData::SI_CallCnt<<endl;}
~ZCLinkData()
{
cout<<"* ~ZCLinkData() : "<<ZCLinkData::SI_CallCnt--<<endl;
}
ZCLinkData& operator=(const ZCLinkData& rhs)
{
mo_DataCStr = rhs.mo_DataCStr; return *this;
}
string& GetData() {return mo_DataCStr;}
const string& GetData() const{return mo_DataCStr;}
public :
};
typedef ZNsIFaceEx::ZtCLink
<ZCEmpty, ZCLinkData> ZCLinkBase;
typedef ZCLinkData ZCLinkCStr ;
typedef ZtCLinkList<ZCLinkBase> ZCLinkStrList;
-- 2015-10-15 14:51
■ ZtCLinkList 의 링크를 주로 정의하는 ZNsIFaceEx::ZtCLink 은 operator() 을 가지는 것이 ■ ZtCLinkList 의 링크를 주로 정의하는 ZNsIFaceEx::ZtCLink 은 operator() 을 가지는 것이
좋다. 좋다.