c++ 模板之 抽象工厂(二)

2015-07-20 17:16:08 ? 作者: ? 浏览: 11
/////////////////////////////////////////////////////////////////////////// template < class AbstractFact, template class Creator = OpNewFactoryUnit, class TList = typename AbstractFact::ProductList > class ConcreteFactory : public GenLinearHierarchy ::Result, Creator, AbstractFact> { public: typedef typename AbstractFact::ProductList ProductList; typedef TList ConcreteProductList; }; } // namespace Loki #endif // end file guardian
class Soldier { public: virtual ~Soldier() {} }; class Monster { public: virtual ~Monster() {} }; class SuperMonster { public: virtual ~SuperMonster() {} }; class SillySoldier : public Soldier {}; class SillyMonster : public Monster {}; class SillySuperMonster : public SuperMonster {}; class BadSoldier : public Soldier {}; class BadMonster : public Monster {}; class BadSuperMonster : public SuperMonster {}; void abstractfactory_test() { using namespace Loki; typedef AbstractFactory
     
       AbstractEnemyFactory; typedef ConcreteFactory
      
        EasyLevelEnemyFactory; typedef ConcreteFactory
       
         HardLevelEnemyFactory; std::auto_ptr
        
          easyFactory(new EasyLevelEnemyFactory); std::auto_ptr
         
           hardFactory(new HardLevelEnemyFactory); //1 Monster *s; s = easyFactory->Create
          
           (); delete s; //2 AbstractFactoryUnit
           
             & soldier_V = *easyFactory; AbstractFactoryUnit
            
              & monster_V = *easyFactory; AbstractFactoryUnit
             
               & superMonster_V = *easyFactory; }
             
            
           
          
         
        
       
      
     


?

下图 为 两个类 的继承关系图

/

?

?

/

?

-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: