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

合肥企业建网站seo网站推广收费

合肥企业建网站,seo网站推广收费,东莞公司网站建设公司,全国建筑业四库一平台原型模式#xff08;Prototype Pattern#xff09; 原型模式是一种创建型设计模式#xff0c;它允许你通过复制现有对象来创建新的对象#xff0c;而不是通过类实例化来创建对象。这种模式在开发时需要大量类似对象的情况下非常有用。原型模式的核心是一个具有克隆方法的接…原型模式Prototype Pattern 原型模式是一种创建型设计模式它允许你通过复制现有对象来创建新的对象而不是通过类实例化来创建对象。这种模式在开发时需要大量类似对象的情况下非常有用。原型模式的核心是一个具有克隆方法的接口通过实现该接口不同的对象可以被复制。 实际应用 在C中原型模式通常使用一个基类原型接口和具体实现类来实现。基类包含一个纯虚拟的克隆方法每个具体类实现该方法以返回自己的克隆。 克隆形状对象 假设我们有一个Shape基类和一些具体的形状类如Circle和Rectangle。 #include iostream #include memory #include unordered_map// Shape基类包含一个纯虚拟的克隆方法 class Shape { public:virtual ~Shape() default;virtual std::unique_ptrShape clone() const 0;virtual void draw() const 0; };// Circle类继承自Shape并实现克隆方法 class Circle : public Shape { private:int radius; public:Circle(int r) : radius(r) {}std::unique_ptrShape clone() const override {return std::make_uniqueCircle(*this);}void draw() const override {std::cout Drawing a Circle with radius radius \n;} };// Rectangle类继承自Shape并实现克隆方法 class Rectangle : public Shape { private:int width, height; public:Rectangle(int w, int h) : width(w), height(h) {}std::unique_ptrShape clone() const override {return std::make_uniqueRectangle(*this);}void draw() const override {std::cout Drawing a Rectangle with width width and height height \n;} };int main() {// 创建原型对象std::unordered_mapstd::string, std::unique_ptrShape prototypes;prototypes[circle] std::make_uniqueCircle(10);prototypes[rectangle] std::make_uniqueRectangle(20, 30);// 克隆对象std::unique_ptrShape shape1 prototypes[circle]-clone();std::unique_ptrShape shape2 prototypes[rectangle]-clone();// 绘制克隆的对象shape1-draw();shape2-draw();return 0; } 克隆计算机对象 假设我们有一个Computer基类和一些具体的计算机类如Laptop和Desktop。 #include iostream #include memory #include unordered_map// Computer基类包含一个纯虚拟的克隆方法 class Computer { public:virtual ~Computer() default;virtual std::unique_ptrComputer clone() const 0;virtual void display() const 0; };// Laptop类继承自Computer并实现克隆方法 class Laptop : public Computer { private:int batteryLife; public:Laptop(int battery) : batteryLife(battery) {}std::unique_ptrComputer clone() const override {return std::make_uniqueLaptop(*this);}void display() const override {std::cout Displaying a Laptop with battery life batteryLife hours\n;} };// Desktop类继承自Computer并实现克隆方法 class Desktop : public Computer { private:bool hasMonitor; public:Desktop(bool monitor) : hasMonitor(monitor) {}std::unique_ptrComputer clone() const override {return std::make_uniqueDesktop(*this);}void display() const override {std::cout Displaying a Desktop (hasMonitor ? with : without) monitor\n;} };int main() {// 创建原型对象std::unordered_mapstd::string, std::unique_ptrComputer prototypes;prototypes[laptop] std::make_uniqueLaptop(8);prototypes[desktop] std::make_uniqueDesktop(true);// 克隆对象std::unique_ptrComputer comp1 prototypes[laptop]-clone();std::unique_ptrComputer comp2 prototypes[desktop]-clone();// 显示克隆的对象comp1-display();comp2-display();return 0; } 克隆文档对象 假设我们有一个Document基类和一些具体的文档类如WordDocument和PDFDocument。 #include iostream #include memory #include unordered_map// Document基类包含一个纯虚拟的克隆方法 class Document { public:virtual ~Document() default;virtual std::unique_ptrDocument clone() const 0;virtual void print() const 0; };// WordDocument类继承自Document并实现克隆方法 class WordDocument : public Document { private:int wordCount; public:WordDocument(int words) : wordCount(words) {}std::unique_ptrDocument clone() const override {return std::make_uniqueWordDocument(*this);}void print() const override {std::cout Printing a Word Document with word count wordCount \n;} };// PDFDocument类继承自Document并实现克隆方法 class PDFDocument : public Document { private:int pageCount; public:PDFDocument(int pages) : pageCount(pages) {}std::unique_ptrDocument clone() const override {return std::make_uniquePDFDocument(*this);}void print() const override {std::cout Printing a PDF Document with page count pageCount \n;} };int main() {// 创建原型对象std::unordered_mapstd::string, std::unique_ptrDocument prototypes;prototypes[word] std::make_uniqueWordDocument(5000);prototypes[pdf] std::make_uniquePDFDocument(100);// 克隆对象std::unique_ptrDocument doc1 prototypes[word]-clone();std::unique_ptrDocument doc2 prototypes[pdf]-clone();// 打印克隆的对象doc1-print();doc2-print();return 0; } 总结 每个原型类实现自己的克隆方法从而确保了对象的正确复制。
http://www.dnsts.com.cn/news/95959.html

相关文章:

  • 建设银行博士后招聘网站做数据收集网站
  • 福州品牌网站设计html5手机网站案例
  • 商丘建设网站花店网站建设构思
  • 广西建设监理协会官方网站自适应h5网页模板
  • title:(网站建设)搜狐最大的门户网站
  • 贵金属网站建设合肥做网站专家
  • 东莞市公司网站建设服务机构怎么做一个网站多少钱
  • 公司网站html模板有赞小程序开发平台
  • 专业的外贸行业网站设计家里装修
  • 检察院门户网站建设成效网站免费正能量入口
  • 熊撑号怎么做网站推广专注合肥网站推广
  • 有哪些看设计做品的网站注册安全工程师考试
  • wordpress产品页面在哪改齐三seo
  • 网站建设 自适应网站开发常见面试题
  • 网站建设招聘岗位ps做 网站标准尺寸是多少合适
  • 淘宝做链接的网站公众号小程序二维码怎么生成
  • wordpress中英文网站电商公司运营策略
  • 做爰网站爱情岛wordpress 干扰码插件
  • 网站建设框架搭建如何建论坛网站
  • 如何利用模板建站北京怎样建网站
  • 临沂做网站优化襄阳微网站建设
  • 怎么用ps做网站超链接wordpress在线时长插件
  • 网站开发asp专门看网站的浏览器
  • 网站备案多久一次太原seo排名外包
  • PHP网站开发项目式教程成都建设网页公司
  • 2023年电脑端网游浙江seo关键词
  • 晋江网站建设html代码颜色表
  • 建设品牌型网站上海最近发生什么大事
  • 创建网站基本流程哪家企业网页制作好
  • 免费看电视的网站有哪些如何用vs2010做网站