zhouqijie

术语(Terminology)

声明式Declaration

告诉编译器某个东西的名称和类型,但略去细节。

对象(变量)声明不分配空间。(示例extern int x;
函数声明无实现。每个函数的声明揭示其签名式(signature)。

定义式(defination)

提供编译器一些声明式所遗漏的细节。

对象(变量)的定义式是编译器分配地址的地点。
函数的定义式提供了代码本体。

初始化(initialize)

初始化是给与对象初始值的过程。对于用户自定义类型的对象,初始化由构造函数执行。

构造函数和复制构造函数

类对象的构造函数可以声明为explicit,这可以阻止它们被用来执行隐式类型转换,但它们仍可以给用来进行显式类型转换。

复制构造函数被用来“以同型对象初始化自身对象”。

复制构造函数定义了如何进行按值传递(passed by value)。(CRE:或者说对象赋值)

CRE:为什么需要复制构造函数而不是直接内存拷贝?因为涉及到深复制、外部资源、虚函数表等相关处理。

标准模板库(STL)

STL是所谓标准模板库(standard template library)。是一个C++标准程序库的一部分,致力于容器、迭代器、算法及相关机能。

未定义行为(Undefined Behaviour)

由于各种因素,某些C++构件的行为没有定义:你无法稳定预估运行期会发生什么事。

比如对null指针取值。
比如无效的数组索引。

未定义行为的后果不可预期,应该尽可能避开。

接口(inteface)

C++接口概念通常指的是函数的签名或者class的可访问元素。而不是Java、C#的接口。

(END)