effective morden c++
风尧
学习ing
展开
-
effective morden c++ 3
条款十三 优先使用const_iterator 对于iterator与const_iterator 它们是两个不同的类型,而不是说一个是另一个加上/除去const修饰符,故static_cast、remove_const等是做不到其间的相互转换的。 因此,只要能加cosnt,那就加上cosnt,即你不需要改变容器成员的时候尽量用const_iterator。 这里要提到一点,con...原创 2019-06-24 16:00:56 · 341 阅读 · 0 评论 -
effective morden c++ 2
条款七 区分()与 {} 3中初始化方式 int x(0) int x = 0 int x{0} //相当于int x = {0} int x //没有初始化 在类内成员初始化时等号与大括号均可,但是小括号不行 对于不可复制的对象则不可用"=" 对于大括号而言{}不允许进行隐式的窄化内建型转换(高精度 -> 低精度,因为低精度存储不了高精度){int, double}若...原创 2019-06-24 16:00:49 · 262 阅读 · 0 评论 -
effective morden c++1
条款一、模板型别推导 T的推断忽略const(指向目标不可变的const可以推断), volatile等,因为T只是一个副本而已 T& 推断出实际的类型左值/右值而非引用,并且不会把数组型[ ]推断成pinter类型(还可以推断出数组的元素数),或把函数推断成函数指针。 const T& 无特殊 T&&把左值推断成左值引用,右值推断成右值,即使得结果为左值/...原创 2019-03-07 23:37:29 · 252 阅读 · 0 评论 -
effective morden c++4
条款二十一 优先使用make_unique(c++14)与nake_shared而非使用new allccate_shared(分配子, 用以构建管理对象的参数) 1、make系列仅仅会引起一次动态分配;new则是两次,一次给指针,一次给控制块 2、new操作和构造函数之间可能执行其他导致异常的函数 4个例外 1、你需要定制析构器,make系列不可以自定义析构器 2、需要用 “...原创 2019-06-24 16:01:01 · 498 阅读 · 0 评论