读书笔记深度探索C++对象模型Chapter6

Chapter 6 执行期语义 Runtime Semantics

对象的构造和析构

局部对象

{

 Point p;

 // p.Point::Point();

 ...

 //p.Point::~Point();

 }

 对于switchif-else等控制流,情况相对复杂一些。

全局对象

C++保证全局对象在main函数第一次使用全局变量前将全局变量初始化好。在main结束前销毁。

局部静态变量

局部静态变量的构造函数和析构函数都只能执行一次。编译器会设立一个临时变量,初始为0,当局部静态变量初始化后,该临时变量指向局部静态变量的地址。于是构造和析构都需要条件执行(该临时变量作为条件)。

数组

newdelete运算符

有意思的Placement Operator new:可以将一个对象在特定内存位置初始化(有弊端、慎用)。

Point *p = new(myPlace) Point;

临时性对象

原文地址:https://www.cnblogs.com/apprentice89/p/2983196.html