⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prototype.c

📁 Design Pattern C Source Code
💻 C
字号:
/**/#ifdef SampleCode1#include "C++/MazeGame.H"#include "C++/MazeFactory.H"#include "C++/MazeParts.H"/**/class MazePrototypeFactory : public MazeFactory {public:    MazePrototypeFactory(Maze*, Wall*, Room*, Door*);/**/    virtual Maze* MakeMaze() const;    virtual Room* MakeRoom(int) const;    virtual Wall* MakeWall() const;    virtual Door* MakeDoor(Room*, Room*) const;/**/private:    Maze* _prototypeMaze;    Room* _prototypeRoom;    Wall* _prototypeWall;    Door* _prototypeDoor;};/**/MazePrototypeFactory::MazePrototypeFactory (    Maze* m, Wall* w, Room* r, Door* d) {   _prototypeMaze = m;   _prototypeWall = w;   _prototypeRoom = r;   _prototypeDoor = d;}/**/Wall* MazePrototypeFactory::MakeWall () const {    return _prototypeWall->Clone();}/**/Door* MazePrototypeFactory::MakeDoor (Room* r1, Room *r2) const {    Door* door = _prototypeDoor->Clone();    door->Initialize(r1, r2);    return door;}/**/void dummy () {/**/MazeGame game;MazePrototypeFactory simpleMazeFactory(    new Maze, new Wall, new Room, new Door);Maze* maze = game.CreateMaze(simpleMazeFactory);/**/}void dummy2 () {/**/MazePrototypeFactory bombedMazeFactory(    new Maze, new BombedWall,    new RoomWithABomb, new Door);/**/}#endif#ifdef SampleCode2#define Door_H#define BombedWall_H#define DoorNeedingSpell_H#include "C++/MazeParts.H"/**/class Door : public MapSite {public:    Door();    Door(const Door&);/**/    virtual void Initialize(Room*, Room*);    virtual Door* Clone() const;/**/    virtual void Enter();    Room* OtherSideFrom(Room*);private:    Room* _room1;    Room* _room2;};/**/Door::Door (const Door& other) {    _room1 = other._room1;    _room2 = other._room2;}/**/void Door::Initialize (Room* r1, Room* r2) {    _room1 = r1;    _room2 = r2;}/**/Door* Door::Clone () const {    return new Door(*this);}/**/class BombedWall : public Wall {public:    BombedWall();    BombedWall(const BombedWall&);/**/    virtual Wall* Clone() const;    bool HasBomb();private:    bool _bomb;};/**/BombedWall::BombedWall (const BombedWall& other) : Wall(other) {    _bomb = other._bomb;}/**/Wall* BombedWall::Clone () const {    return new BombedWall(*this);}/**/#endif/**/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -