commit 2025-10-20 01:01 edit a bit ZCppMain/ZMainHead.H
This commit is contained in:
@ -3610,6 +3610,70 @@ namespace ZNsMain
|
|||||||
|
|
||||||
각 객체에 어떻게 쉽게 접근하는지가 관건이다. -- 2025-10-18 01:41
|
각 객체에 어떻게 쉽게 접근하는지가 관건이다. -- 2025-10-18 01:41
|
||||||
|
|
||||||
|
() 을 재정의해서, () 을 필요한 만큼 겹겹이 호출해서 접근하도록 했다.
|
||||||
|
아래 예제:202510200053 참고.
|
||||||
|
|
||||||
|
■ 예제:202510200053
|
||||||
|
|
||||||
|
class ZCTypeView
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
ZCTypeView()
|
||||||
|
{
|
||||||
|
cout<<"# ZCTypeView()"<<endl;
|
||||||
|
}
|
||||||
|
ZCTypeView(const ZCTypeView& rhs)
|
||||||
|
{
|
||||||
|
cout<<"ZCTypeView(const ZCTypeView& rhs)"<<endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename TTypChain> void OnMeetType()
|
||||||
|
{
|
||||||
|
cout<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
|
||||||
|
}
|
||||||
|
template<typename TTypChain, typename TTypHelp> void OnMeetType(TTypHelp& AR_CallNo)
|
||||||
|
{
|
||||||
|
cout<<"* Call No="<<++AR_CallNo<<" : "<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename TTypChain> void OnMeetTypeVal()
|
||||||
|
{
|
||||||
|
cout<<"* Val="<<TTypChain::GetData()<<" : "<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
|
||||||
|
}
|
||||||
|
template<typename TTypChain, typename TTypHelp> void OnMeetTypeVal(TTypHelp& AR_CallNo)
|
||||||
|
{
|
||||||
|
cout<<"* Call No="<<++AR_CallNo<<" : "<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename TObjtChain> void OnMeetData(TObjtChain& AR_NowChain)
|
||||||
|
{
|
||||||
|
cout<<"* Type No="<<AR_NowChain.GetNo()<<" : "<<AR_NowChain.GetData()<<endl;
|
||||||
|
}
|
||||||
|
template<typename TObjtChain> void OnMeetData(TObjtChain& AR_NowChain, int& ARI_CallNo)
|
||||||
|
{
|
||||||
|
cout<<"# CallNo="<<++ARI_CallNo<<" : Type No="<<AR_NowChain.GetNo()<<" : "<<AR_NowChain.GetData()<<endl;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
ZCTypeView VO_ZCTypeView;
|
||||||
|
|
||||||
|
typedef ZtCObjtChain
|
||||||
|
<
|
||||||
|
char , ZtCObjtChain<
|
||||||
|
string, ZtCObjtChain<
|
||||||
|
double, ZtCObjtChain<
|
||||||
|
int ,
|
||||||
|
ZCEmpty > > >
|
||||||
|
> ZCObjtChain; ZCObjtChain VO_ZCObjtChain;
|
||||||
|
|
||||||
|
VO_ZCObjtChain.GetChainNext().GetData()="abc";
|
||||||
|
VO_ZCObjtChain.GetData()='A';
|
||||||
|
VO_ZCObjtChain().GetData()="New Str";
|
||||||
|
VO_ZCObjtChain()().GetData()=0.8 ;
|
||||||
|
VO_ZCObjtChain()()().GetData()=1234 ;
|
||||||
|
VO_ZCObjtChain.IterHead(VO_ZCTypeView);
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////*/
|
///////////////////////////////////////////////////////////////////*/
|
||||||
|
|
||||||
template /*########################################################*/
|
template /*########################################################*/
|
||||||
@ -3669,7 +3733,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
if(TypeChainNow::ZEBoolNext>0)
|
if(TypeChainNow::ZEBoolNext>0)
|
||||||
{
|
{
|
||||||
static_cast<TypeChainNext&>(*this).IterHead(AO_CView);
|
this->TypeChainNext::IterHead(AO_CView);
|
||||||
}/*
|
}/*
|
||||||
if(TypeChainNow::ZEBoolNext>0)*/
|
if(TypeChainNow::ZEBoolNext>0)*/
|
||||||
}/*
|
}/*
|
||||||
@ -3678,7 +3742,7 @@ namespace ZNsMain
|
|||||||
{
|
{
|
||||||
if(TypeChainNow::ZEBoolNext>0)
|
if(TypeChainNow::ZEBoolNext>0)
|
||||||
{
|
{
|
||||||
static_cast<TypeChainNext&>(*this).IterTail(AO_CView);
|
this->TypeChainNext::IterTail(AO_CView);
|
||||||
}/*
|
}/*
|
||||||
if(TypeChainNow::ZEBoolNext>0)*/
|
if(TypeChainNow::ZEBoolNext>0)*/
|
||||||
|
|
||||||
@ -3698,8 +3762,8 @@ namespace ZNsMain
|
|||||||
|
|
||||||
if(TypeChainNow::ZEBoolNext>0)
|
if(TypeChainNow::ZEBoolNext>0)
|
||||||
{
|
{
|
||||||
static_cast<TypeChainNext&>(*this).
|
this->TypeChainNext::
|
||||||
IterHead( AO_CView, AO_TypeHelp ) ;
|
IterHead(AO_CView, AO_TypeHelp);
|
||||||
}/*
|
}/*
|
||||||
if(TypeChainNow::ZEBoolNext>0)*/
|
if(TypeChainNow::ZEBoolNext>0)*/
|
||||||
}/*
|
}/*
|
||||||
@ -3710,8 +3774,8 @@ namespace ZNsMain
|
|||||||
{
|
{
|
||||||
if(TypeChainNow::ZEBoolNext>0)
|
if(TypeChainNow::ZEBoolNext>0)
|
||||||
{
|
{
|
||||||
static_cast<TypeChainNext&>(*this).
|
this->TypeChainNext::
|
||||||
IterTail( AO_CView, AO_TypeHelp ) ;
|
IterTail(AO_CView, AO_TypeHelp);
|
||||||
}/*
|
}/*
|
||||||
if(TypeChainNow::ZEBoolNext>0)*/
|
if(TypeChainNow::ZEBoolNext>0)*/
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user