多态时要注意不要拉了const,否则多态无效
多态时除了virtual还要注意不要忘了了const,否则多态无效
class MazeFactory{ public: MazeFactory(){ } virtual Maze* MakeMaze() const {return new Maze(10);} virtual Wall* MakeWall() const {return new Wall;} virtual Room* MakeRoom(int n) const {return new Room(n);} virtual Door* MakeDoor(Room* r1, Room* r2)const { return new Door(r1, r2);} }
class newWallFactory : public MazeFactory { public: newWallFactory() {} virtual Wall* MakeWall() const { //没有const则多态不成立 return new newWall(); } };
posted on 2016-03-17 22:36 photonCarry 阅读(371) 评论(0) 收藏 举报
浙公网安备 33010602011771号