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

建设企业网站e路护航官网下载外国做家具的网站

建设企业网站e路护航官网下载,外国做家具的网站,杭州网站建设方案服务公司,微博付费推广有用吗More Effective C Basics reference pointer reference 必定有值#xff0c;pointer 可以为空reference 声明时必须定义#xff0c;必须初始化reference 无需测试有效性#xff0c;pointer 必须测试是否为 nullreference 可以更改指向对象的值#xff0c;但是无法…More Effective C Basics reference pointer reference 必定有值pointer 可以为空reference 声明时必须定义必须初始化reference 无需测试有效性pointer 必须测试是否为 nullreference 可以更改指向对象的值但是无法指向其他对象pointer 可以指向其他对象 cast c 转型typeexprc 转型castexpr staticjust like c 转型无类型检查dynamicbase-》derived有类型检查reinterpret二进制重新解释受制于编译期平台constamend costness or volatileness polymorphically array 使用base array pointer处理derived array会导致未定义行为 default constructor 贸然提供default constructor需要在运行时测试是否值有效缺乏default constructor会带来束缚 无法创建对象数组只能创建指针数组可以使用 placement new 创建对象数组显式使用析构函数的 placement delete删除 使用 delete 删除 placement new 创建的对象会导致未定义行为 Operators implicit conversion 单参数构造函数或其余参数有默认值隐式类型转换操作符隐式类型转换导致难以发现的问题 构造函数标记为 explicit定义显式类型转换asType只能进行一次隐式转换多次类型转换不会有问题 increment/decrement prefix/postfix 【i累加后取出】clazz operator() 返回引用允许i 【i取出后累加】const clazz operator(clazz) 额外参数区分参数不得使用返回const不允许i为了使得逻辑一致用increment prefix来实现increment postfix override 、||、, 重载、||导致问题 、||条件满足/不满足会提前终止重载后左右式作为函数参数都会被执行 重载导致问题 逗号表达式先求解左式再求解右式值为右式重载后函数无法保证执行顺序 new, operator new, placement new, delete, operator delete, [] new无法重载operator new constructor placement newoperator new重载分配内存的行为 void * operator newsize_t placement new重载在指定内存上构建对象 void * operator newsize_t void* location deletedestructor operator delete placement new 分配的内存无法通过 operator delete 删除 显式析构 分配内存对应的方式删除 new-deletemalloc-free Exceptions 程序运行出错时设置状态变量或返回错误码无法保证异常被程序处理程序可能会异常运行而抛出异常如果未进行捕获程序便会立刻终止。 delete in destructor 将资源分配在对象内在析构函数中删除内存析构函数必然会被调用防止因为异常产生未删除内存 exceptions in constructor 构造函数异常部分构造的对象不会自动析构 将所有成员变量视为RAII对象使用shared_ptr exceptions in destructor 使用uncaught_exception判断析构函数时候正有一个exception在作用中正在处理异常的析构函数抛出未捕获的异常会导致程序终止不应该让析构函数抛出异常析构函数应该是异常安全的 stack unwinding C异常处理栈展开机制 异常被抛出当前作用域搜索异常处理程序catch块未搜索到销毁该作用域内的局部对象 调用析构函数出现异常程序终止std::terminate 退出当前作用域继续搜索上一级作用域未处理异常std::terminatestd::abort生成核心转储文件 catch exceptions param pass 处理异常和函数传参的区别 异常永远会被复制因为异常处理程序超出函数调用作用域 按值捕获复制两次传参一次复制一次引用捕获复制一次 不发生隐式类型转换仅能发生继承类型转换异常按catch的顺序处理没有最优类型匹配 子类异常应该写在基类异常的前面否则不会被处理 catch exceptions by reference catch by pointer无法判断是否应该删除资源catch by value子类异常由基类捕获会导致对象切割仅剩下基类行为catch by reference推荐使用且仅复制一次 exception specifications 在定义中指定函数可能抛出的异常 未指定则表明可能抛出任何异常指定noexcept表明不会抛出任何异常 抛出未定义异常会导致unexpected函数调用 unexpected的默认行为是调用terminate可以使用set_unexpected自定义处理行为 可以提供额外的异常定义说明但是违反说明的异常会直接导致程序终止 exception handling cost 异常处理会使得程序效率下降5%~10% Efficiency 80-20 rule 80%的资源被20%的代码占用不仅需要大幅优化代码更重要的是找到那20%的瓶颈不根据经验和直觉而是使用profiler来分析那20%代码 lazy evaluation 如果计算不是绝对必要使用lazy evaluation替代eager evaluation over-eager evaluation cache缓存已计算的值prefetch预先从磁盘读取可能访问的值每次读取磁盘多于请求量的值 avoid temporary 临时对象≠局部对象临时对象是没有名字的栈对象 函数传参隐式类型转换 by value隐式转换为临时对象by const reference隐式转换为临时对象by non-const reference隐式转化无法被触发因为对临时对象的修改无法反馈会引用对象因此编译报错 函数返回值 使用替代返回值优化RVO return value optimize 直接返回构造函数避免临时对象的生成 overload to avoid implicit type conversions 使用函数重载来避免没有函数重载时的隐式类型转换 supply and 操作符往往比有更高的效率重载操作符的时候提供版本 third party library 相同功能的第三方库在性能方面可能会有不同的设计和不同的效率偏重 inherit cost virtual functions 每个class包含一个虚函数表每个对象包含一个虚函数表的指针virtual 函数无法 inline因为 inline 需要在编译期复制函数调用而 virtual 需要运行期才能确定调用函数 multiple inheritance virtual base classes 菱形继承需要virtual base class额外的指针开销 runtime type identificationRTTI typeid获取class相应的type_info需要额外的指针指向type_info可以在虚函数表中添加指向type_info的指针 Techniques virtual constructor non-member function virtual constructor factory function 根据参数生成不同的子类 virtual copy constructor 每个子类添加虚函数clone调用拷贝构造函数 virtual non-member function 每个子类添加虚函数实现具体操作non-member function inline化调用相应虚函数 limit class instance count 关键资源有限其对应的类示例数目也有限 零或一单例模式n在构造函数中添加static示例计数使用make函数显式构造防止隐式构造增加计数 fore constructor in/out of heap in heap对象有自杀能力delete删除内存out of heap对象不会造成内存泄漏重载 static void * operator newsize_tstatic void operator deletevoid * smart pointers 智能指针无法在子类和基类之间转换需要借助于隐式类型转换操作符 reference count 多数对象共享少数的实值实值的产生和删除成本高使用引用计数来记录共享对象的个数在引用计数为零时删除 proxy class 表示一个观念上不存在的对象 实现[][]重载proxy对象为Array1D multi virtual function 根据多个子类的类型判断调用的函数 func(base*, base*) 虚函数RTTI运行时类型辨识虚函数重载自行实现虚函数表 Miscellany
http://www.dnsts.com.cn/news/155849.html

相关文章:

  • 鲜花网站建设的项目介绍烈焰传奇网页版
  • 深圳网站建设工作室一个域名多个网站
  • 计算机学院网站建设小程序开发制作多少钱
  • 为什么小城市做不出来好的网站电子商务主要学什么课程
  • 企业做网站的注意什么做cps需要什么样的网站
  • 皮具网站建设wordpress 当前分类id
  • 教做发绳的网站住建部网站资质查询中宏建设集团
  • 微网站如何做推广大兴网站设计
  • 免费制作动画网站公众号开发教程零基础
  • 怎么在百度建网站扬州立扬计算机培训网站建设怎么样
  • 网站运营成本营销型网站管理方案
  • html5移动端网站开发教程拖拽式网站建设
  • 做网站的内容网站的营销推广方案
  • 营销型网站建设多少钱写出网站开发的基本流程
  • php网站开发文章管理系统wordpress企业免费模板下载
  • 网站开发外文文献网站建设案例效果
  • 超值的扬中网站建设编辑网站教程
  • 公司支付网站建设费进什么费用做直播网站软件有哪些软件有哪些
  • 马鞍山网站建设公注册有限公司需要什么条件
  • 怎么样免费做网站阿里云 建设wordpress
  • ipv6跟做网站有关吗南京百度竞价推广公司排名
  • 看视频做那个网站好做本地团购网站怎么样
  • 网站首页布局的设计手机怎么登录网页版微信
  • 怎样查看网站服务商如何做视频网站的广告推广
  • 东莞网站优化哪家好宣传片拍摄费用
  • 有注入漏洞的网站源码北京企业名录大全
  • 佛山专业网站建设报价wordpress小说站数据
  • 呼伦贝尔做网站的中国机械加工网平台
  • 网站模板预览工业设计大赛官网
  • 企业域名怎么查找北京优化seo排名优化