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

上海网站建设技术托管绍兴网站建设方案托管

上海网站建设技术托管,绍兴网站建设方案托管,深圳关键词推广优化,呼和浩特公司做网站目录 【设计模式专题之建造者模式】4. 自行车加工【设计模式专题之原型模式】5. 矩形原型 【设计模式专题之建造者模式】4. 自行车加工 文章链接#xff1a;卡码网设计模式 题目链接#xff1a;4. 自行车加工 注意重载函数的写法和使用方式#xff0c;使用时与其它重… 目录 【设计模式专题之建造者模式】4. 自行车加工【设计模式专题之原型模式】5. 矩形原型 【设计模式专题之建造者模式】4. 自行车加工 文章链接卡码网设计模式 题目链接4. 自行车加工 注意重载函数的写法和使用方式使用时与其它重载符号区别于参数对象。 另外定义为 friend 该类的友元函数意味着其可以访问该类的私有成员而不加friend 则operator 被定义为全局函数而不是类的成员函数。这意味着这个函数不能直接访问类的私有成员因为它不是类的成员函数。 #include iostream #include bits/stdc.husing namespace std;class Bike{ private:string frame;string tires;public:void setFrame(const string frame){this-frame frame;}void setTires(const string tires){this-tires tires;}friend ostream operator(ostream os, const Bike bike){os bike.frame bike.tires;return os;} };class BikeBuilder{ public:virtual void buildFrame() 0;virtual void buildTires() 0;virtual Bike getResult() 0; };class MountainBikeBuilder : public BikeBuilder{ private:Bike bike;public:void buildFrame() override{bike.setFrame(Aluminum Frame);}void buildTires() override{bike.setTires(Knobby Tires);}Bike getResult() override{return bike;} };class RoadBikeBuilder : public BikeBuilder{ private:Bike bike;public:void buildFrame() override{bike.setFrame(Carbon Frame);}void buildTires() override{bike.setTires(Slim Tires);}Bike getResult() override{return bike;} };class BikeDirector{ public:Bike construct(BikeBuilder builder){builder.buildFrame();builder.buildTires();return builder.getResult();} };int main(){int N;cin N;BikeDirector director;for (int i 0; i N; i){BikeBuilder* builder nullptr;string type;cin type;if (type mountain){builder new MountainBikeBuilder();}else if (type road){builder new RoadBikeBuilder();}Bike bike director.construct(*builder);cout bike endl;delete builder;}return 0; }【设计模式专题之原型模式】5. 矩形原型 文章链接卡码网设计模式 题目链接5. 矩形原型 注意两点 在未显示定义拷贝构造函数时C编译器会使用默认拷贝构造函数且是浅拷贝创建新对象时使用 叫做 复制初始化会调用拷贝构造函数。 拷贝构造函数用于创建一个对象的副本它在以下情况下被调用 对象通过值传递给函数。 对象以值传递方式从一个函数返回。 通过另一个对象初始化一个新对象。 当对象作为另一个对象的元素被初始化时 浅拷贝指的是新对象复制了原对象成员变量的指针与原对象共享动态分配的内存块深拷贝指的是复制了原对象的所有成员包括指向的动态分配的内存每个成员都有自己的内存副本新对象不改变成员变量的值时新对象与原对象指向同一块内存改动新对象成员变量值时 新对象成员变量指针发生变动指向自己的副本内存并对值进行改动记得是这样 RectanglePrototype类中return 后使用的 是string类重载的 。 #includeiostream #includebits/stdc.h using namespace std;class Prototype{ public:virtual Prototype* clone() 0;virtual string getDetails() 0; };class RectanglePrototype : public Prototype{ private:string color;int width;int height; public:RectanglePrototype(string color, int width, int height): color(color), width(width), height(height) {}Prototype* clone() override{return new RectanglePrototype(*this); // 使用编译器默认拷贝构造函数}string getDetails() override{return Color: color , Width: to_string(width) , Height: to_string(height); // string类重载的加号} };int main(){vectorPrototype* rectangles;int N;cin N;for (int i 0; i N; i){string color;int width;int height;cin color width height;Prototype* originalPrototype new RectanglePrototype(color, width, height);rectangles.push_back(originalPrototype);}for (const auto rectangle : rectangles){Prototype* colneRectangle rectangle-clone(); //复制初始化编译器调用默认拷贝构造函数浅拷贝cout colneRectangle-getDetails() endl;delete colneRectangle;}for (const auto rectangle : rectangles){delete rectangle;}return 0; }设计模式第三天打卡复习了很多C面向对象的知识对从前从视频上看到的知识理解更加深了哈哈哈还是得自己动手敲代码学习理解的深啊加油
http://www.zqtcl.cn/news/314797/

相关文章:

  • 做网站技术wordpress漂亮手机网站模板下载
  • 网站怎么更新网页内容网络推广怎么找客户
  • 如何编写网站建设销售的心得适合装饰公司的名字
  • 有什么免费建网站网站pr查询
  • flash+xml网站模板简述网站制作的一般流程
  • 成都私人做网站建设怎么切页面做网站
  • 聊城做网站的公司论坛外链代发
  • 廊坊企业自助建站网站框架设计好后怎么做
  • 手机网站建设效果wordpress 目录改变
  • 做商城网站的项目背景图片c2750服务器做网站行吗
  • 北京市专业网站建设wordpress视频站
  • 知名网站制作公南充建设机械网站
  • 网站建设实践鉴定微商小程序制作
  • 盗用别人网站图做网站快速排名优化推广手机
  • 安徽网站建设服务平台wordpress自定义统计
  • 微网站开发方案模板建站宝盒哪个牌子好
  • 低价做网站网站制作天津
  • 成都网站推广外包门户网站素材
  • wordpress 拿站网站制作北京海淀
  • 惠州网站建设行业wordpress文章阅读权限
  • 做地方网站需要什么部门批准网页版微信二维码
  • o2o网站运维建设方案宿州市网站建设
  • 上海网站排名优化公司马蜂窝是什么做的网站
  • 邢台网站建设网站淘宝小程序入口
  • 公司起名自动生成器网站优化方法
  • 太原网站开发团队wordpress 链接 插件
  • 阿克顿巴网站建设的目的智通人才招聘网
  • 网站快速优化成营销型网站制作
  • 网站建设mus18php 网站缓存文件
  • 建设企业网站企业网上银行助手下载泰安网签数据