/**/
/************************************
***********接口类部分****************
*************************************/
// 抽象类声明
class NomalActor
... {
public:
virtual NomalActor* Clone();
} ;
class FlyActor
... {
public:
virtual FlyActor* Clone();
} ;
class WaterActor
... {
public:
virtual WaterActor* Clone();
} ;
// 具体类声明
class NomalActorA: public NomalActor
... {
public:
virtual NomalActor* Clone()...{return (NomalActor*)this; }
} ;
class NomalActorB: public NomalActor
... {
public:
virtual NomalActor* Clone()...{return (NomalActor*)this; }
} ;
class FlyActorA: public FlyActor
... {
public:
virtual FlyActor* Clone()...{return (FlyActor*)this; }
} ;
class FlyActorB: public FlyActor
... {
public:
virtual FlyActor* Clone()...{return (FlyActor*)this; }
} ;
class WaterActorA: public WaterActor
... {
public:
virtual WaterActor* Clone()...{return (WaterActor*)this; }
} ;
class WaterActorB: public WaterActor
... {
public:
virtual WaterActor* Clone()...{return (WaterActor*)this; }
} ;
/**/ /************************************
***********客户类部分****************
*************************************/
class GemeSystem
... {
GemeSystem();
~GemeSystem();
void Run();
} ;
void GemeSystem::Run(NomalActor normalactor,FlyActor flyactor, WaterActor wateractor)
... {
NomalActor normalactor1 = normalactor.Clone();
NomalActor normalactor2 = normalactor.Clone();
NomalActor normalactor3 = normalactor.Clone();
NomalActor normalactor4 = normalactor.Clone();
NomalActor normalactor5 = normalactor.Clone();
FlyActor flyactor1 = flyalactor.Clone();
FlyActor flyactor2 = flyalactor.Clone();
WaterActor wateractor1 = watoralactor.Clone();
WaterActor wateractor2 = watoralactor.Clone();
}
/**/ /************************************
***********主函数部分****************
*************************************/
int int main()
... {
GemeSystem gameactor1;
WaterActorA wateractor;
FlyActorB flyactor;
NormalactorA normalactor;
gameactor1.Run(normalactor,flyactor,wateractor);
return 0;
}
***********接口类部分****************
*************************************/
// 抽象类声明
class NomalActor
... {
public:
virtual NomalActor* Clone();
} ;
class FlyActor
... {
public:
virtual FlyActor* Clone();
} ;
class WaterActor
... {
public:
virtual WaterActor* Clone();
} ;
// 具体类声明
class NomalActorA: public NomalActor
... {
public:
virtual NomalActor* Clone()...{return (NomalActor*)this; }
} ;
class NomalActorB: public NomalActor
... {
public:
virtual NomalActor* Clone()...{return (NomalActor*)this; }
} ;
class FlyActorA: public FlyActor
... {
public:
virtual FlyActor* Clone()...{return (FlyActor*)this; }
} ;
class FlyActorB: public FlyActor
... {
public:
virtual FlyActor* Clone()...{return (FlyActor*)this; }
} ;
class WaterActorA: public WaterActor
... {
public:
virtual WaterActor* Clone()...{return (WaterActor*)this; }
} ;
class WaterActorB: public WaterActor
... {
public:
virtual WaterActor* Clone()...{return (WaterActor*)this; }
} ;
/**/ /************************************
***********客户类部分****************
*************************************/
class GemeSystem
... {
GemeSystem();
~GemeSystem();
void Run();
} ;
void GemeSystem::Run(NomalActor normalactor,FlyActor flyactor, WaterActor wateractor)
... {
NomalActor normalactor1 = normalactor.Clone();
NomalActor normalactor2 = normalactor.Clone();
NomalActor normalactor3 = normalactor.Clone();
NomalActor normalactor4 = normalactor.Clone();
NomalActor normalactor5 = normalactor.Clone();
FlyActor flyactor1 = flyalactor.Clone();
FlyActor flyactor2 = flyalactor.Clone();
WaterActor wateractor1 = watoralactor.Clone();
WaterActor wateractor2 = watoralactor.Clone();
}
/**/ /************************************
***********主函数部分****************
*************************************/
int int main()
... {
GemeSystem gameactor1;
WaterActorA wateractor;
FlyActorB flyactor;
NormalactorA normalactor;
gameactor1.Run(normalactor,flyactor,wateractor);
return 0;
}