当前位置: 首页 > news >正文

网站开发毕业论文开题报告怎么推广产品最有效

网站开发毕业论文开题报告,怎么推广产品最有效,美食网站,只做瓶子包装设计的创意网站《C新经典设计模式》之第4章 策略模式 策略模式.cpp 策略模式.cpp #include <iostream> #include <memory> using namespace std;// if或switch分支不稳定&#xff0c;经常改动时&#xff0c;考虑引入算法独立到策略类中去实现// 依赖倒置原则 // 高层组件不应该依…

《C++新经典设计模式》之第4章 策略模式

        • 策略模式.cpp

策略模式.cpp
#include <iostream>
#include <memory>
using namespace std;// if或switch分支不稳定,经常改动时,考虑引入算法独立到策略类中去实现// 依赖倒置原则
// 高层组件不应该依赖于底层组件(具体实现类),两者都应该依赖于抽象层
// 面向接口(抽象层)编程,而不是针对实现(实现类)编程namespace ns0
{enum ItemAddlife // 增加补充生命值道具{LF_BXD, // 补血丹LF_DHD, // 大还丹LF_SHD, // 守护丹};class Fighter{protected:int m_life; // 人物生命值int m_magic;int m_attack;public:Fighter(int life, int magic, int attack) : m_life(life), m_magic(magic), m_attack(attack) {}virtual ~Fighter() {}public:void UseItem(ItemAddlife djtype) // 吃药补充生命值{switch (djtype) // 道具类型{case LF_BXD:       // 补血丹m_life += 200; // 补充200点生命值// if (主角中毒了)//{//     停止中毒状态,也就是主角吃药后就不再中毒// }// if (主角处于狂暴状态){m_life += 400;  // 额外再补充400点生命值m_magic += 200; // 魔法值也再补充200点}break;case LF_DHD:       // 大还丹m_life += 300; // 补充300点生命值break;case LF_SHD:       // 守护丹m_life += 500; // 补充500点生命break;}}};class F_Warrior : public Fighter // “战士”类{public:F_Warrior(int life, int magic, int attack) : Fighter(life, magic, attack) {}};class F_Mage : public Fighter // “法师”类{public:F_Mage(int life, int magic, int attack) : Fighter(life, magic, attack) {}};
}namespace ns1
{class Fighter;class ItemStrategy // 道具策略类的父类{public:virtual ~ItemStrategy() {}virtual void UseItem(Fighter *const mainobj) = 0;};// 战斗者父类class Fighter{shared_ptr<ItemStrategy> itemstrategy;protected:int m_life; // 人物生命值int m_magic;int m_attack;public:Fighter(int life, int magic, int attack) : m_life(life), m_magic(magic), m_attack(attack) {}virtual ~Fighter() {}public:void SetItemStrategy(const shared_ptr<ItemStrategy> &strategy) { itemstrategy = strategy; } // 设置道具使用的策略void UseItem() { itemstrategy->UseItem(this); }                                             // 使用道具(吃药)int GetLife() const { return m_life; }void SetLife(int life) { m_life = life; }};class F_Warrior : public Fighter // “战士”类{public:F_Warrior(int life, int magic, int attack) : Fighter(life, magic, attack) {}};class F_Mage : public Fighter // “法师”类{public:F_Mage(int life, int magic, int attack) : Fighter(life, magic, attack) {}};class ItemStrategy_BXD : public ItemStrategy // 补血丹策略类{public:void UseItem(Fighter *const mainobj) override { mainobj->SetLife(mainobj->GetLife() + 200); }};class ItemStrategy_DHD : public ItemStrategy // 大还丹策略类{public:void UseItem(Fighter *const mainobj) override { mainobj->SetLife(mainobj->GetLife() + 300); }};class ItemStrategy_SHD : public ItemStrategy // 守护丹策略类{public:void UseItem(Fighter *const mainobj) override { mainobj->SetLife(mainobj->GetLife() + 500); }};
}namespace ns2
{class M_Undead // 亡灵类怪物{public:void getinfo() const { cout << "M_Undead" << endl; }};class M_Element // 元素类怪物{public:void getinfo() const { cout << "M_Element" << endl; }};class M_Mechanic // 机械类怪物{public:void getinfo() const { cout << "M_Mechanic" << endl; }};class F_Warrior // 战士主角{public:void attack_enemy_undead(const shared_ptr<M_Undead> &pobj) // 攻击亡灵类怪物{pobj->getinfo(); // 可以调用亡灵类怪物相关的成员函数}public:void attack_enemy_element(const shared_ptr<M_Element> &pobj) // 攻击元素类怪物{pobj->getinfo(); // 可以调用元素类怪物相关的成员函数}};
}namespace ns3
{class Monster // 作为所有怪物类(抽象层){public:virtual ~Monster() {}virtual void getinfo() const = 0; // 纯虚函数};class M_Undead : public Monster // 亡灵类怪物{public:void getinfo() const override { cout << "M_Undead" << endl; }};class M_Element : public Monster // 元素类怪物{public:void getinfo() const override { cout << "M_Element" << endl; }};class M_Mechanic : public Monster // 机械类怪物{public:void getinfo() const override { cout << "M_Mechanic" << endl; }};class F_Warrior // 战士主角{public:void attack_enemy(const shared_ptr<Monster> &pobj) // 击杀怪物{pobj->getinfo(); // 可以调用怪物相关的成员函数}};
}int main()
{
#if 0using namespace ns0;shared_ptr<Fighter> prole_war(new F_Warrior(1000, 0, 200)); // 这没有采用工厂模式,如果主角很多,可以考虑采用工厂模式创建对象prole_war->UseItem(LF_DHD);
#endif#if 0using namespace ns1;// 创建主角shared_ptr<Fighter> prole_war(new F_Warrior(1000, 0, 200));// 吃一颗大还丹prole_war->SetItemStrategy(make_shared<ItemStrategy_DHD>()); // 主角设置大还丹策略,准备吃大还丹prole_war->UseItem();                                        // 主角吃大还丹// 再吃一颗补血丹shared_ptr<ItemStrategy> strateby2(new ItemStrategy_BXD()); // 创建补血丹策略prole_war->SetItemStrategy(strateby2);                      // 主角设置补血丹策略,准备吃补血丹prole_war->UseItem();                                       // 主角吃补血丹
#endif#if 0using namespace ns2;shared_ptr<F_Warrior> pobjwar(new F_Warrior());pobjwar->attack_enemy_undead(make_shared<M_Undead>()); // 攻击一只亡灵类怪物shared_ptr<M_Element> pobjelm(new M_Element());pobjwar->attack_enemy_element(pobjelm); // 攻击一只元素类怪物
#endif#if 1using namespace ns3;shared_ptr<F_Warrior> pobjwar(new F_Warrior());pobjwar->attack_enemy(make_shared<M_Undead>()); // 攻击一只亡灵类怪物shared_ptr<Monster> pobjelm(new M_Element());pobjwar->attack_enemy(pobjelm); // 攻击一只元素类怪物
#endifreturn 0;
}
http://www.tj-hxxt.cn/news/27197.html

相关文章:

  • 四川省的建设厅注册中心网站首页今日桂林头条新闻
  • 手机网站建设网站网址大全是ie浏览器吗
  • 如何做网站滚动条微信卖货小程序怎么做
  • asp.net网站开发简介十大职业资格培训机构
  • 手机网站内容模块百度官方网
  • 企业网站改版计划书sem推广什么意思
  • 灰色行业推广引流seo优化总结
  • 做网站官网网站关键词推广优化
  • 网站开发的岗位职责市场营销在线课程
  • 服务性网站建设的原则产品推广平台有哪些
  • 网站logo也叫做网站的郑州seo课程
  • 石牌桥网站建设企业网站建设的目的
  • 全站flash网站神马网站快速排名软件
  • 备案的网站换空间厦门网站到首页排名
  • 自己建网站怎么做seo网络营销策划书怎么写
  • 东华网站开发北京朝阳区优化
  • 直播类网站开发营销策划案的模板
  • 中国农村建设网站广告优化师前景怎样
  • 在线做交互网站整站外包优化公司
  • 电子商务网站建设教学星沙网站优化seo
  • 转运公司网站建设国内做seo最好的公司
  • 哪个网站可以悬赏做图什么是营销型网站?
  • 现在的网站开发用什么技术网站制作app免费软件
  • 制作小程序营销平台seo网站优化师
  • 沧州省建设厅网站网络营销八大目标是什么
  • 招远专业做网站公司平台交易网
  • 动漫制作专业可以考公务员吗seo网站优化外包
  • 重庆疫情最新消息今天优化营商环境存在问题及整改措施
  • 怎么通过局域网建设网站品牌网络推广运营公司
  • 内衣网站建立站长工具下载app