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

淘宝网站是怎么做的吗网站建设优化公司

淘宝网站是怎么做的吗,网站建设优化公司,莆田网站制作设计,网页设计作业成品免费下载前言 打牢基础,万事不愁 .C的基础语法的学习 引入 前一篇帖子C基础语法:类构造函数之普通构造函数-CSDN博客讲了普通构造函数,还有 复制构造函数,赋值运算符以及延伸出来的浅复制和深复制问题,做个补充. 内容主要参考自C Prime Plus 6th Edition …前言 打牢基础,万事不愁 .C的基础语法的学习 引入 前一篇帖子C基础语法:类构造函数之普通构造函数-CSDN博客讲了普通构造函数,还有 复制构造函数,赋值运算符以及延伸出来的浅复制和深复制问题,做个补充. 内容主要参考自C Prime Plus 6th Edition 第12章 类和动态内存分配 题外话 先说说个人心得,这部分内容是C学习首次接触时,开始觉得杂乱的地方,也可以说是第一个难点(当然后面还有多种继承方式,多重继承啊,模板啊,算法啊,也不容易).所以需要好好梳理他的来龙去脉. 类可以包络一切数据和逻辑,类写完了,程序差不多就完成了.所以构造类对象比较重要. 再谈谈学习方法,纯记忆学习,很牢靠也很让人踏实.但有两个问题,一是记不记得了那么多,有的人记忆力没那么好.二是容易造成一个不爱思考的舒适区,编程本身就是在表达逻辑,比使用逻辑要深一层.所以学习最好能建立逻辑链,以现有知识推导未知,同时把未知变为已知 复制构造函数 对象的生成方法,不止使用普通构造函数,还可以使用复制构造函数.他们在形式上有差别.普通构造函数,使用了非对象做参数;复制构造函数,使用已生成的对象做参数,生成新的对象.例如:  #includeiostream using namespace std; class Person { //类声明string description;double money; public:Person(const string des, double mo) :description(des), money(mo) {}double getMoney() {return money;}string getDescription() {return description;} };int main(void) {Person Annie Person(beautiful, 5000); //普通构造函数生成对象安妮Person Julie(Annie); //复制构造函数生成对象朱丽,属性值和安妮相同cout 安妮的私房钱: Annie.getMoney() endl;cout 朱莉的私房钱: Julie.getMoney() endl; } ----对象Annie的生成调用了普通构造函数,对象Julie的生成调用了复制构造函数. 复制构造函数还有另外几种形式:   不用可以去记忆,他们的共同特征是以已有对象做参数. Person JulieAnnie; Person JuliePerson(Annie); Person *pJulienew Person(Annie); 赋值运算符 和复制构造函数几乎相同:          Person Rebecca; //声明对象瑞贝卡Rebecca Julie; //将Julie的属性值赋给Rebeccacout 瑞贝卡的私房钱: Rebecca.getMoney() endl; Person(){} //类声明中加上默认构造函数,否则报错 函数原型及浅复制 每个类存在默认复制构造函数和默认赋值运算符,本例中的原型是: Person (const Person); //默认复制构造函数原型 Person Person::operator(const Person); //赋值运算符重载 他表达的逻辑: 传入已有对象时,将对象的属性值赋给新对象, 内容分割线:小思考 疑问:原型内部逻辑怎样实现属性值复制? java里有反射机制,可以获得每个类的属性和方法,C没有明确说明是怎样实现反射的.但可以肯定的是:一定存在类似反射的机制,可以获得每个类的属性.他有可能被封装进源码里,没有将接口开放给程序员.        内容分割线:小思考 浅复制的问题 篇幅所限,代码参考C Prime Plus 6th Edition 第12章 类和动态内存分配 中的String类 1无法处理类静态变量 这里必须说明,因为静态变量num_strings是表示生成对象的数量,在普通构造函数中有所表示---每生成一个对象,num_strings;而在默认的复制构造函数和赋值符的定义中,没有表示,所以会造成调用后两种方法生成对象时,不会记录到静态变量中.----这不是语法造成的,而是逻辑上的错误.自定义默认构造函数和赋值符解决 2当传入指针,并在析构函数中调用delete删除指针指向对象,又把对象浅复制,并且两次调用析构函数. 第2个问题的条件比较长,分两步来理解. 首先是类设计时,有指针传入; 在析构函数中调用delete删除指针指向的对象. 然后在生成对象object后,浅复制生成了新对象newObject(可能有多个).两次或多次调用析构函数释放内存,使删除出错.   -----原因:C两次释放同一块空间会出现错误. 浅复制问题的解决:深复制 深复制可以解决浅复制带来的问题,操作也比较简单,不管是普通构造函数,复制构造函数,赋值运算符重载,都用new开辟一块内存空间,复制传入指针指向的数据,在析构函数里定义delete.那么不管怎样复制对象,每生成一个对象,调用delete一次,不会出错. 深复制的问题 以下内容书上没有,属于自己总结,有版权:) 内容分割线:小思考          为什么要给类传入指针? C是追求性能的语言,试想这种场景:尽可能的占用少的内存.内存分为三块:静态内存,局部变量使用内存,动态内存;那么可以推导出程序运行占用的内存只有类定义,函数定义(这些空间无法节省),所有的数据都用new动态生成,用完即删除.所以传入的指针都是new生成的. 内容分割线:小思考  深复制有以下两个问题: 1和以上内容存在悖论,为了正确的删除,占用了更多的内存空间. 2给指针分配多少内存合适?书上的例子是char *指针,可以求出其占用空间,若指针指向数组,可以用sizeof()求出,如果指针指向链表或者其他数据集合又该怎么办呢? 深复制问题的解决 1所有构造函数定义和赋值运算符重载都不用new分配空间(比书上还省一点),什么时候删除指针指向的数据,全由程序员自己掌握.举例: class Demo { //演示类,属性有指针int* demo; public:Demo(int * de):demo(de){}void show() {cout 数组中的第1个数字是: *demo endl;} // ~Demo() { delete[] demo; }; //若启用则删除传入指针指向数据,和delete[] a互斥 };int main(void) {int *anew int[] { 10,20 }; //动态分配空间建立数组,生成指针aDemo *dnew Demo(a); //传入指针,并动态生成对象dd-show();delete d; //删除动态生成对象dcout 现在数组中第1个数字是 *a endl;delete[] a; //手动删除a,需要注释~Demo()否则报错 } ----说明:又回到浅复制了, 代码少了许多(如果解决静态变量问题需补上定义) 2不要传入指针,把数据放到一个类里,传入该类对象的引用.用对象引用去控制数据,内存占一点也没关系,省事多了.需要新对象的话再用普通构造函数生成一个 ----说明:不要说深复制,浅复制都被省了,整个12章的内容几乎都被省去了.对作者和书的内容无可厚非,设计了这种机制,也讲清楚了. 小结 C构造函数的理解和应用
http://www.dnsts.com.cn/news/185412.html

相关文章:

  • 泰安哪里有做网站app的贵阳58同城做网站公司有哪些
  • 石家庄网站建设求职简历企业信息查询表去哪里查
  • 购买已备案网站做非法全国网站制作公司排名
  • 怎么注册网站域名住房和城乡建设部科技发展促进中心网站
  • 雄安优秀网站建设哪家好如何推广运营网站
  • 租车网站建设方案wordpress 网站 上传
  • 做网站怎么兼容所有浏览器网站集群建设的意义
  • 福州市台江区网站免费h5
  • 中国建材网官方网站wordpress搜狗
  • 如何开发手机网站搜索引擎优化举例说明
  • 账户竞价托管公司seo搜索引擎营销工具
  • 建设小的电商网站开源系统公司网站的建站要点
  • 阿里logo设计网站建设公司网站需要多少天
  • 寿宁县建设局网站公司介绍网站怎么做的
  • wordpress外贸网站好用的模板下载用开源吗做的网站可以用吗
  • 网站上传无锡网站建设方案服务
  • 延吉网站开发公司wordpress事件提醒
  • 微商城网页版网站关键词优化哪家正规
  • 民治做网站哪家便宜网站维护要学多久
  • 织梦网站图片怎么修改不了jsp网站开发案例
  • 运营和营销哪个更好兰州网站seo分析
  • 英语网站建设策划书最新新闻热点事件2022年8月
  • 网站建设收费标准市场南宁网站建设云尚网络
  • python做网站多么惠州做网站公司
  • 深圳app开发公司哪家比较好seo自己怎么做
  • 网站 防 恶意注册免费做封面的网站
  • 南通网站制作设计wordpress怎么加地图
  • 松江网站建设哪家好网站定制开发 广州
  • 做58网站怎么赚钱吗中山网站建设工作
  • 做擦边球的网站互联网一线大厂排名