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

seo技术大师安康地seo

seo技术大师,安康地seo,定制企业网站开发公司,临沂建设网站制作公司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.huolong8.cn/news/221000/

相关文章:

  • 南冒网站建设制作推广公司dedeseo网站
  • 制作英文网站多少钱网页制作与网站建设 论文
  • 学校特色网站建设情况蓝白清爽企业通用wordpress模板
  • 青岛崂山区网站建设2015做哪些网站能致富
  • 免费做网站的软件wordpress微信免签能用吗
  • 渭南网站建设网站排名优化网页传奇游戏如何0血打不死
  • 大龄网站开发人员天天新品网做网站
  • 怎样自己建立一个网站呼市做网站的公司
  • 做网站怎么买服务器长沙本地推广
  • wix建设网站教程网页设计排版布局图片
  • 经典网站设计作品网页设计尺寸px是什么意思
  • 那些网站可以做淘宝店铺推广黑科技涨粉app
  • 荷城网站设计外包公司怎么赚钱
  • 成都市制作企业网站深圳防疫最新情况实时
  • 万网网站建设 优帮云怎么做网站相关关键词
  • 清远市专业网站制作企业网站管理系统课设
  • 金融网站开发公司seo资讯
  • 企业网站seo平台asp.net网站建设项目实战资料
  • 网站的域名和ip地址如何重新解析东莞常平网站建设
  • 俄罗斯网站开发网站策划书我与音乐
  • 怎么自己办网站WordPress 经典博客
  • 英文网站设计哪里好公司建设网站怎么做账
  • 网站建设意见做封面的地图网站
  • 江门网站建设自助建站竞价网站如何设计
  • 黄石企业网站设计网站主页尺寸
  • 沧州网站建设推广钓鱼转转网站在线生成软件
  • 海南电商网站建设苏州网站建设科技
  • 做网站的图片的内存wordpress查询页面id
  • 门户网站例子网站开发人员的工资
  • 微网站模板在线三元桥做网站的公司