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

小白网站建设教程龙信建设集团网站

小白网站建设教程,龙信建设集团网站,大理石在哪些网站做宣传,协会秘书处工作建设 网站结构体的深拷贝和浅拷贝 浅拷贝就是只拷贝指针#xff0c;并不拷贝指针所指向的内容#xff0c;深拷贝则会对指针的内容进行拷贝。浅拷贝会在一些场景下出现问题#xff0c;看下面的例子#xff1a; struct s {char * name;int age; };如果我定义 一个对象s1#xff0c;…结构体的深拷贝和浅拷贝 浅拷贝就是只拷贝指针并不拷贝指针所指向的内容深拷贝则会对指针的内容进行拷贝。浅拷贝会在一些场景下出现问题看下面的例子 struct s {char * name;int age; };如果我定义 一个对象s1并且为name申请一块内存并赋值为“zhangsan”然后定义对象s2s1然后修改s2的name值会发生什么情况 重载实现原理 重载可以让相同名称的函数具有不同的实现可以通过参数的数量参数类型参数顺序等来区分但是不能够只通过返回值来判断。 重载是原理就是基于编译器name Mangling机制在编译阶段会为所有函数生成一个唯一的标识符用来区分不同函数。通过编译器将具有相同名称不同参数的函数会根据名称加参数生成唯一的标识符并在执行时调用这也叫静态联编。 这里的name mangling 机制是前缀 _Z是GCC的规定(写gcc编译器人员规定的数字3 是函数名Add的字符个数i表示第一个函数的参数类型inti是第二个函数的参数类型int。对于第二个函数签名中Pi则表示第三个函数类型是int* 因为C编译器的name mangling规则与C的不同C语言的命名规则仅依赖于函数名和函数参数类型无关。因为同名函数没办法区分。而C是通过函数修饰规则来区分只要参数不同修饰出来的名字就不一样就支持了重载。 const const用来标记一个变量是不可修改的主要使用的场景有 修饰变量修饰指针修饰引用修饰函数参数修饰函数返回值修饰类成员函数 对应的还要一个constexpr 表示这个一个常量表达式可以在编译阶段计算出来 指针和引用的区别 引用在声明时必须赋值指针不需要引用赋值后不可以修改指针可以引用不可以为空值指针可以 虚函数、纯虚函数、抽象类 虚函数 虚函数并不是不实现的函数而是允许基类指针可以调用子类的该函数。用来实现多态虚函数只能借助于指针或者引用来达到多态的效果。 纯虚函数 如果一个函数为纯虚函数则代表该函数没有实现只是定义了一个接口规定继承该类的子类必须实现该函数。 抽象类 带有纯虚函数的类称为抽象类。抽象类不能够定义对象如果子类不是先纯虚函数则子类也是一个抽象类。 虚继承 解决菱形继承的问题。解决命名冲突和冗余数据问题 使得在派生类中只保留一份间接基类的成员。 四种cast reinterpret_cast reinterpret_cast是功能最强大的cast但也是最暴力最底层最不安全的他是一个编译器指令将对应的地址转换解释的方式。 可以将一个int转换为指针也可以将指针转换为int也可以实现不同类型指针之间的转换。 reinterpret_cast是底层二进制的强制拷贝和语义转换不会损失精度。 const_cast 修改变量的const属性。 如果是添加const则是先进行一个深拷贝然后赋值如果是去掉const static_cast 基本类型之间转换void指针转换为任意基本类型指针子类或父类之间引用或指针的转换向下转换父类转子类是不安全的子类转父类是安全的 dynamic_cast dynamic_cast用于类继承层次间的指针或引用转换(主要用于向下的安全转换)。dynamic_cast向下转型的安全性主要体现在RTTI运行时类型识别。无法转型返回NULL。 auto_ptr, unique_ptr, shared_ptr, weak_ptr 只能指针用于解决内存正确释放的问题它负责自动释放所指向的对象 auto_ptr: unique_ptr 某个时刻只能有一个unique_ptr指向一个给定对象。当unique_ptr 被销毁时它所指向的对象也被销毁。 初始化 没有shared_ptr中make_shared标准库函数返回一个unique_ptr,我们定义一个unique_ptr需要绑定到new返回的指针上并且不能通过赋值的方式要采用直接赋值方式unique_ptr p1(new A()). releasereset 禁止拷贝和赋值 因为该指针指向的对象只能有一个unique_ptr指针也就是一个引用计数 因此不支持普通的拷贝和赋值。特殊情况一个即将销毁的unique_ptr可以拷贝或者赋值给另一个unique指针。 shared_ptr 作用 消除野指针重复释放内存泄漏等问题。 基本原理 记录对象的引用次数当引用次数为0的时候也就是最后一个共享指针析构的时候会把指向的内存释放掉。 常用函数 getuse_countresetoperator*operator- 注意事项 多线程的读写安全要谨慎使用get不要用栈内的指针构造shared ptr因为共享指针是通过delete来释放内存需要对应到new出的内存才可以不要用原始指针初始化多个共享指针 weak_ptr: 创建weak_ptr, 需要使用shared_ptr反过来是行不通的需要使用lock函数 weak_ptr不会增加引用计数 解决shared_ptr循环引用将其中一个改为weakptr即可 内联函数 inline关键字修饰的函数或者是函数内部定义的函数都可能是内联函数但是具体会不会展开还需要编译器决定。 内联函数是以代码膨胀为代价的如果内联函数内有循环或者代码较长执行时间比调用时间更长代码膨胀后会消耗更多的内存
http://www.hkea.cn/news/14308614/

相关文章:

  • 电力建设工程最好的网站黄冈市建设银行网站
  • 深圳网站seo教程Vs做的网站调试时如何适应网页
  • 网站定制开发上海网站返利程序
  • 学编程用什么笔记本电脑好安阳专业seo地址
  • 洛阳有没有做家教的网站公众号seo排名软件
  • dw做网站的导航栏怎么做百度推广账户怎么开
  • asp.net网站第一次运行慢域名什么意思
  • 网站建设温江网站首页的概念
  • 网站app免费下载软件大全什么是搜索引擎优化?
  • 淄博市住房和城乡建设局官方网站网站目录怎么做外链
  • 三合一模板网站湖北什么是网站建设
  • 什么程序做网站用户体验好的网站
  • 网站导航背景 蓝色做网站团队
  • 网站源码文件安装教程奎屯网站制作
  • 网站开发示例宁波网站建设开发多少钱
  • 站长工具ip地址查询企业建设营销型网站步骤
  • 公司网站上传ftp教程企业信息化管理软件有哪些
  • 苏州公司网站建设电话国内wordpress视频主题
  • 网站投票功能天元建设集团有限公司座机号码
  • 网站建设与优化wordpress迁移保留账号
  • .net 网站开发视频wordpress微现场
  • 网站整体设计流程外贸网站 模板
  • 网站如何做地面推广关于网站建设的建议征集
  • php做网站 价格wordpress新建留言板
  • 手机网站开发之列表开发中国互联网公司排名2022
  • 怎么补网站漏洞云设计工具
  • 建设通类型的网站如何快速提升网站关键词排名
  • 淘宝客网站虚拟主机0元开店0元铺货无加盟费开网店
  • 做网站平台应该注意哪些网站建设常用的开发语言介绍
  • php搭建网站教程洛宁网站开发