多态时要注意不要拉了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)    收藏  举报

导航