我在“设计模式”一书中读到了一个例子:
Maze* MazeGame::CreateMaze(MazeFactory& factory)
{
//something to do
}
class BombedMazeFactory :public MazeFactory
{
//something to defined
}
int main()
{
MazeGame game;
BombedMazeFactory factory;
game.CreateMaze(factory);
}
因此,子类对象将被发送到使用基类作为参数的 CreateMaze()。当我做这种操作时,我应该注意什么?
我也不清楚为什么有时子类函数仍然是虚拟的(它们是基类中的虚拟函数),这有什么好处吗?
感谢您的大力帮助!