Chapter 6 执行期语义 Runtime Semantics
对象的构造和析构
局部对象:
{
Point p;
// p.Point::Point();
...
//p.Point::~Point();
}
对于switch和if-else等控制流,情况相对复杂一些。
全局对象:
C++保证全局对象在main函数第一次使用全局变量前将全局变量初始化好。在main结束前销毁。
局部静态变量:
局部静态变量的构造函数和析构函数都只能执行一次。编译器会设立一个临时变量,初始为0,当局部静态变量初始化后,该临时变量指向局部静态变量的地址。于是构造和析构都需要条件执行(该临时变量作为条件)。
数组:
new和delete运算符
有意思的Placement Operator new:可以将一个对象在特定内存位置初始化(有弊端、慎用)。
Point *p = new(myPlace) Point;
临时性对象