-
转换函数
-
类型转换操作符
- 用于任何需要类型转换的场合
- 应该是一个const操作符,类型转换操作对实例本身造成影响是不合理的
- 隐式类型转换只有在操作符参数表不匹配的情况下发生
-
explicit关键字
- explicit关键字只能作用于只有一个参数的构造函数(有默认值的参数不计入参数数量)
- 对于non-explicit版本的构造函数,如果同时提供了类型转换操作符,有可能会在后续使用中引发二义性
- explicit禁止了隐式类型转换,其他类型的实例不会隐式转换为一个提供了explicit构造函数的类实例
-
-
Pointer-like class
- 如标题所述,这种类型的行为和『指针』类似
- 智能指针
- 可以防止内存泄露的情况出现(how & why?)
- std::unique_ptr和老的auto_ptr基本一致
- std::shared_ptr/std::weak_ptr,强弱引用的问题
- boost::scoped_ptr
- 迭代器
-
Function-like class
- 仿函数
-
namespace
- 主要防止名字污染
- 在头文件里面使用using namespace显然不是一个很好的实践,因为会污染所有直接或间接include这个头文件的文件的名字空间
-
template
- 模板的坑太深,不展开讲
- 需要注意的一点,模板的类型绑定是在编译期完成的
- 模板会造成代码膨胀,每绑定一种不同的类型组合就会产生一份新代码
- 模板类需要写在一个hpp里面
- class template
- function template
- member template
- 特化/偏特化
- 类型推导时优先匹配特化过的模板
- 个数偏特化/范围偏特化
- 模板的模板参数
Geekband C++ Week4 Notes
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- A.导读 泛型编程和面向对象编程虽然分层不同思维,但是它们正式C++的技术主线。随意我们也要讨论模版。 test....
- 接着上节 condition_varible ,本节主要介绍future的内容,练习代码地址。本文参考http:/...
- 在C++11中,我们还是会看到一些新元素。这些新鲜出炉的元素可能会带来一些习惯上的改变,不过权衡之下,可能这样的改...