摘要:
1. 什么是中间件?中间件(middleware)是一种独立的系统软件或服务程序, 它在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件.2. 为什么使用中间件?具体地说,中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必... 阅读全文
摘要:
find (find_if) 搜索等于某值的第一个元素 adjacent_find 搜索连续两个相等的元素 find_first_of 搜索等于某个数值之一的第一个元素 find_end 搜索某个子区间最后出现的位置 search 搜索某个子区间第一次出现的位置 search_n 搜索具有某个特性的第一段n个连续元素 binary_search 判断某个区间内是否包含某个元素 ... 阅读全文
摘要:
构造函数1)initialization list2)异常保护,资源泄漏检查3)this指针的使用4)其他构造函数调用5)虚函数调用6)拷贝构造函数7)隐式类型转换 析构函数1)异常保护2)虚函数调用 成员变量1)compiler - firewall idiom2)访问权限3)traits4)资源管理与智能指针5)引用计数与Copy-On-Write6)const / mutable / vol... 阅读全文
摘要:
返回值如何实现? 【实现模型1】cfont的实现采用了双阶段转化。1.首先声明一个额外的参数,类型上类对象的引用,用来存放返回结果。2.对这个参数利用返回值进行拷贝初始化。过程类似于参数传递,也是要定义一个临时对象,用来保存返回值,然后在函数内部调用拷贝构造函数用那个return值进行初始化。 X bar() { X xx; // process xx ... return xx; } 编译器转化... 阅读全文
摘要:
Copy-On-Write 使用了“引用计数” 如果使用拷贝构造和operator=初始化对象, 则该对象只是简单增加引用计数, 而在当前类对象改变时, 他会去查看引用计数, 如果有其他类对象共享使用当前的对象, 那么把需要更改的类进行拷贝。 阅读全文
摘要:
1)纯虚析构函数,如果不提供定义, 子类不能被实例化。 2)明确使用缺省行为 3)提供部分行为 4)应付功能不足的编译器诊断程序 阅读全文
摘要:
标准形式 T& operator++(); // ++ 前缀T& operator --(); // -- 前缀const T operator++(int); // ++ 后缀const T operator--(int); // -- 后缀// l 是 list<int>, i 是合法的迭代器 1)l.erase(i++); OK 2)l.erase(i)... 阅读全文
摘要:
1)在函数调用之前,对函数的所有参数的求值必须全部完成 2)一旦一个函数开始执行, 调用者函数中的表达式将不会开始求值,或继续求值,直至被调用函数执行结束,函数执行永远不会交叉进行. 3)如果函数参数是表达式,这些表达式通常可以按任何次序求值,包括交叉求值. 对于f(expr1, expr2) 编译器可能先对expr1 求值,也可能后对expr1求值,或者让expr1 和 expr2 的求值交叉进... 阅读全文
摘要:
贪婪匹配 原则是说, 编译器在将源码中的字符解析成一个个标记时,会使用一种贪婪匹配算法, 也就是说尽可能让一个标记包含更多的字符 a---b; 阅读全文
摘要:
具有non-trivial的构造函数,拷贝构造函数, 析构函数和重载赋值操作符的类对象和数组不可以作为union的成员 阅读全文