状态模式-c++实现
来源:互联网 发布:辽宁网络广播电视台 编辑:程序博客网 时间:2024/04/30 05:13
// statepattern.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;class Person;class MainState{ public:virtual void attack() = 0;virtual void stand() = 0;};class Astate : public MainState{public:Astate(Person *pPerson) { m_pPerson = pPerson;};public:void attack(){cout << "Astate attack" << endl;}void stand(){cout << "Astate stand" << endl;}private:Person *m_pPerson;};class Bstate : public MainState{public:Bstate(Person *pPerson) { m_pPerson = pPerson;};void attack(){cout << "Bstate attack" << endl;}void stand(){cout << "Bstate stand" << endl;}private:Person *m_pPerson;};class Person{private:MainState *m_pMainState;Astate *m_pAstate;Bstate *m_pBstate;public:Person(){m_pAstate = new Astate(this);m_pBstate = new Bstate(this);m_pMainState = m_pAstate;}void enterAstate(){m_pMainState = m_pAstate;cout << "enter Astate" << endl;}void enterBstate(){m_pMainState = m_pBstate;cout << "enter Bstate" << endl;}public:void attack(){m_pMainState->attack();}void stand(){m_pMainState->stand();}};int main(){Person *p = new Person();p->enterBstate();p->attack();p->stand();p->enterAstate();p->attack();p->stand();p->enterBstate();p->attack();p->stand(); return 0;}
1 0
- C语言实现状态设计模式
- C语言实现状态设计模式
- 【C++】Chapter12:状态模式
- Objective C--状态模式
- Objective C 状态模式
- 【C++】状态模式
- 嵌入式设计模式:有限状态自动机的C语言实现
- 状态模式简单实现
- LUA实现状态模式
- C++实现状态模式
- 状态模式 C++实现
- 状态模式lua实现
- 状态模式----C++实现
- 状态模式 C++实现
- 状态模式-c++实现
- 状态模式(java实现)
- 设计模式解析和实现(C++, java)之二十--状态(state)模式
- 状态模式实现依赖于状态的行为
- 隐式Intent调用
- Runloop的使用
- Collection集合总结
- Android中的5种数据存储方式
- shell遍历目录下所有文件
- 状态模式-c++实现
- 【MATLAB】image和imshow这俩小妖精的事。。
- 设计模式之工厂设计模式简单实践
- 将启动命令中包含某个字符串的进行杀死
- linux命令行中显示redis的中文编码
- 文本属性
- 5月3号23点记于北京
- MAC 钥匙串访问
- PHP引用&的使用