首页  /  世界杯2012  /  模板模式

模板模式

世界杯2012 3158

C++ 方式:

Game.h

#include

class Game

{

protected:

virtual void initialize() = 0;

virtual void startPlay() = 0;

virtual void endPlay() = 0;

public:

virtual void play() {

initialize();

startPlay();

endPlay();

}

};

Cricket.h

#include "Game.h"

class Cricket :

public Game

{

protected:

virtual void initialize() {

std::cout << "Cricket Game Finished!" << std::endl;

}

virtual void startPlay() {

std::cout << "Cricket Game Initialized! Start playing." << std::endl;

}

virtual void endPlay() {

std::cout << "Cricket Game Started. Enjoy the game!" << std::endl;

}

};

Football.h

#include "Game.h"

class Football :

public Game

{

protected:

virtual void initialize() {

std::cout << "Football Game Finished!" << std::endl;

}

virtual void startPlay() {

std::cout << "Football Game Initialized! Start playing." << std::endl;

}

virtual void endPlay() {

std::cout << "Football Game Started. Enjoy the game!" << std::endl;

}

};

Main.cpp

#include

#include "Cricket.h"

#include "Football.h"

int main(int argc, char* argv[]) {

Game *game = new Cricket();

game->play();

std::cout << std::endl;

game = new Football();

game->play();

}chpeagle chpeagle

chp***le@126.com

5年前 (2020-08-17)