執(zhí)行期語意學(xué)(Runtime Semantics)
對(duì)象的構(gòu)造和析構(gòu)(Object Constructor and Destructor)
一般而言,constructor和destructor的安插都如你所預(yù)期:
{ Point point; //point.Point::Point() 一般而言會(huì)被安插在這里 ... //point.Point::~Point() 一般而言會(huì)被安插在這里}
如果一個(gè)區(qū)段(譯注:以{}括起來的區(qū)域)或函數(shù)中有一個(gè)以上的離開點(diǎn),情況會(huì)稍微混亂一些。Destructor必須被放在每一個(gè)離開點(diǎn)(當(dāng)時(shí)object還存活)之前。例如:
{ Point point; //constructor在這里行動(dòng) switch(int(point.x())){ case -1 : //mumble; //destructor在這里行動(dòng) return; case 0: //mumble //destructor在這里行動(dòng) return; default: //mumble //destructor在這里行動(dòng) return; } //destructo