- 博客(6)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 [C++] - auto的使用、优点和缺点
Table of Contents1.auto的优点1>避免未初始化变量2>避免冗长的变量声明3>具有直接持有闭包(closure)的能力4>type shortcuts 类型捷径2.auto的缺点1>不适用invisible proxy class2>Braced Initializer 类型推断1.auto的优点1>避免未初始化变量auto变量从它们的初始化式中推断它们的类型,所以它们必须被初始化。这意味着你可以免受很
2020-06-28 17:41:09 9915
转载 [C++] - 闭包(closure)
转自:https://www.cnblogs.com/Aion/p/3449756.html闭包有很多种定义,一种说法是,闭包是带有上下文的函数。说白了,就是有状态的函数。更直接一些,不就是个类吗?换了个名字而已。一个函数, 带上了一个状态, 就变成了闭包了. 什么叫 "带上状态" 呢? 意思是这个闭包有属于自己的变量, 这些个变量的值是创建闭包的时候设置的, 并在调用闭包的时候, 可以访问这些变量.函数是代码, 状态是一组变量 ,将代码和一组变量捆绑 (bind) , 就形成了闭包 ,内.
2020-06-28 14:47:29 1287
原创 [读书笔记] - 《深度探索C++对象模型》第6章 & 第7章
1.全局对象Matrix identity;main(){ // identity必须在此处被初始化 Matric m1 = identity; ... return 0;}像identity这样的所谓global object如果有constructor和destructor的话,我们说它需要静态的初始化操作和内存释放操作。C++程序中所有的global objects都被放置在程序的data segment中。如果明确指定给它一个值,object将
2020-06-26 14:41:52 190
原创 [读书笔记] - 《深度探索C++对象模型》第5章 构造、解构、拷贝语意学
1.纯虚函数纯虚函数可以被定义和调用,不过它只能被静态地调用,不能经由虚拟机制调用。// 定义pure virtual functioninline void Abstract_base::interface() const{}inline void Concrete_derived::interface() const{ // ok: 静态调用 Abstract_base::interface();}要不要定义纯虚函数,全由class设计者决定。但是pure
2020-06-19 15:21:53 251
原创 [读书笔记] - 《深度探索C++对象模型》第4章 Function语意学
1. Member的各种调用方式C++支持三种类型的member functions: static、nonstatic和virtual,每一种类型被调用的方式都不相同。1.1 Nonstatic Member FunctionsC++的设计准则之一就是:nonstatic member function至少必须和一般的nonmember function有相同的效率。下面是一个nonmember function的定义:float magnitude3d(const Point3d* _
2020-06-13 18:49:19 283
原创 [读书笔记] - 《深度探索C++对象模型》第3章 Data语意学
一个空的class,如:// sizeof X == 1class X { };事实上并不是空的,它有一个隐晦的1 byte,那是被编译器安插进去的一个char。这使得这个class的两个objects得以在内存中配置独一无二的地址。1.Data Memeber的绑定在下面的程序中,length的类型在两个member function signatuures中都解析为global typedef,也就是int。当后续再有length的nested typedef声明出现时,C++ St
2020-06-06 18:40:20 291
自定义类的对象在定义时使用等号=初始化会经历哪几个过程?
2017-05-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人