Skip to content

Blog

C++语言导学(6): lambda表达式

引言

lambda表达式是一个可执行的代码单元,可以看作是一个匿名内联(inline)函数,下面以匿名函数代指lambda表达式。

定义语法:

[capture list] (parameter list) -> return type { function body }

匿名函数的函数体一般操作比较少,而且匿名函数一般不会反复在多处使用,常是一次性的。

C++语言导学(5): 容器

引言

如果一个类的主要目的是保存对象,那么通常称之为容器(container)。

这里主要简单概述一下这些标准库容器:

  • vector: 有序序列
  • list: 双向链表
  • map: 关联字典
  • unordered_map: 无序哈希

C++语言导学(4): pImpl习惯用法

条款31: 将文件间的编译依存关系降到最低。 --- 《Effective C++》

条款22: 使用pImpl习惯用法时,将特殊成员函数的定义放到实现文件中。 --- 《Effective Modern C++》

pImpl习惯用法,即pointer to implementation,指的是以指针的方式访问类的实现部分。

C++语言导学(3): RAII与智能指针

引言

C++提供开发者自定义类型的能力,而对于自定义类型的资源管理是一大难题。

对于一个自定义类型或者class来说,可以直接创建它的对象,也可以通过new为它创建指针。

对于对象和指针的资源管理,分别可以使用RAII原则和智能指针来处理。

C++语言导学(2): 模块化

引言

程序组织的最佳方式是将程序看作依赖关系定义良好的一组模块,在逻辑上通过语言特性表达模块化,在物理上通过文件模块化实现高效的分别编译。

程序源码文件模块化最重要的一步是将每个组成部分的接口和实现分离开来,借助分别编译、后续链接的方式提高编译效率。

以往是通过头文件(*.hpp)和实现文件(*.cpp)来达到分离目的,在编译为动态链接库(*.so)供其他人使用的时候特别方便,可以达到隐藏细节的目的。

第一位田园诗人陶渊明

陶潜,字渊明,江西九江人,自称五柳先生,世号靖节先生。

东晋末期到刘宋初期的人物,一般归为东晋诗人,是中国第一位田园诗人。

有才名,少好读书,不求甚解,每有会意,欣然忘食。

祖上当过东晋的大司马,相当于宰相级别,但到了他这一代,已经穷困潦倒了。

唐高宗庶长子李忠的坎坷人生

唐代从第一位太子李建成开始,太子这个位置好像被下了诅咒一般,最先封的太子都很难顺利即位,总是过的战战兢兢。

第一代太子李建成被弟弟李世民所杀,第二代太子李承乾被父亲李世民所废,第三代太子李忠被父亲李治所废。

贞观十七年,15岁的李治被封为太子,同年有了自己的第一个儿子,即庶长子李忠。