GGym's Practice Notes

11장. 바이트코드(인터프리터 패턴) 본문

Design Pattern/게임 디자인패턴

11장. 바이트코드(인터프리터 패턴)

GGym_ 2020. 3. 25. 19:32

15와 2를 더하는 코드

#include<iostream>
using namespace std;

// 인터프리터 패턴

class Expression {
public:
	virtual ~Expression(){}
	virtual double evaluate()=0;
};

class NumberExpression:public Expression{
public:
	NumberExpression(double value) : value_(value){}
	virtual double evaluate() {return value_;}

private:
	double value_;
};
class AdditionExpression:public Expression{
public:
	AdditionExpression(Expression* left, Expression* right)
	: left_(left), right_(right){}

	virtual double evaluate(){
		double left = left_->evaluate();
		double right = right_->evaluate();

		return left+right;
	}
	
private:
	Expression* left_;
	Expression* right_;
};

int main(){
	NumberExpression a = 5, b = 2;
	AdditionExpression s(&a, &b);
	cout << s.evaluate() << endl;

	return 0;
}

'Design Pattern > 게임 디자인패턴' 카테고리의 다른 글

2장. 명령 패턴  (0) 2020.05.07
6장. 싱글턴 패턴  (0) 2020.05.07
5장. 프로토타입 패턴  (0) 2020.04.27
4장. 관찰자 패턴  (0) 2020.04.17
11장. 바이트코드 패턴  (0) 2020.03.25