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

📄 gumballstatewinner.cpp

📁 深入浅出设计模式(书配套c++源代码)。包含20个设计模式的c++实现。
💻 CPP
字号:
#include "GumballStateWinner.hpp"

using namespace HeadFirstDesignPatterns::State::GumballStateWinner;

//
// put here to resolve forward reference paradox where GumballMachine
// references State(s) and State references GumballMachine. Note, a 
// simple forward 'class' reference is not sufficient to resolve the
// circular (chicken&egg) paradox. Morever, since the intent is to 
// preserve as much of the original examples, this minor deviation is
// acceptable.
//
GumballMachine::GumballMachine(int numberGumballs) :	_count( numberGumballs ) { assert( numberGumballs >= 0 );	_soldOutState = new SoldOutState( this );	_noQuarterState = new NoQuarterState( this );	_hasQuarterState = new HasQuarterState( this );	_soldState = new SoldState( this );	_winnerState = new WinnerState( this );	_state = _soldOutState;	if( _count  > 0 ) {		_state = _noQuarterState;	} }

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

	std::auto_ptr< GumballMachine > gumballMachine( new GumballMachine( 10 ) );	std::cout << gumballMachine->toString() << std::endl;	gumballMachine->insertQuarter();	gumballMachine->turnCrank();	gumballMachine->insertQuarter();	gumballMachine->turnCrank();	std::cout << gumballMachine->toString() << std::endl;	gumballMachine->insertQuarter();	gumballMachine->turnCrank();	gumballMachine->insertQuarter();	gumballMachine->turnCrank();	std::cout << gumballMachine->toString() << std::endl;	gumballMachine->insertQuarter();	gumballMachine->turnCrank();	gumballMachine->insertQuarter();	gumballMachine->turnCrank();	std::cout << gumballMachine->toString() << std::endl;	gumballMachine->insertQuarter();	gumballMachine->turnCrank();	gumballMachine->insertQuarter();	gumballMachine->turnCrank();	std::cout << gumballMachine->toString() << std::endl;	gumballMachine->insertQuarter();	gumballMachine->turnCrank();	gumballMachine->insertQuarter();	gumballMachine->turnCrank();	std::cout << gumballMachine->toString() << std::endl;

	return 0;
}

⌨️ 快捷键说明

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