lintcod 496. 玩具工厂

本文介绍了一个使用工厂模式创建不同玩具类的示例,通过ToyFactory类可以生成会说话的猫和狗玩具,展示了多态性和代码复用的设计原则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工厂模式是一种常见的设计模式。请实现一个玩具工厂 ToyFactory 用来产生不同的玩具类。可以假设只有猫和狗两种玩具。

样例
例1:

输入:
ToyFactory tf = ToyFactory();
Toy toy = tf.getToy('Dog');
toy.talk(); 
输出:
Wow

例2:
输入:
ToyFactory tf = ToyFactory();
toy = tf.getToy('Cat');
toy.talk();
输出:
Meow

输入测试数据 (每行一个参数)
如何理解测试数据?
class Toy {
public:
    virtual void talk() const=0;
};

class Dog: public Toy {
    // Write your code here
      void talk() const
      {
          cout<<"Wow"<<endl;
      }
};

class Cat: public Toy {
    // Write your code here
         void talk  ()const
      {
          cout<<"Meow"<<endl;
      }
};

class ToyFactory {
public:
    /**
     * @param type a string
     * @return Get object of the type
     */
    Toy* getToy(string& type) {
        // Write your code here
        if(type=="Dog") 
        {
            Dog*dog=new Dog();
            return dog;
        }
        else 
        {
            Cat*cat=new Cat();
            return cat;
        }
    }
};```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值