簡體   English   中英

靜態變量生存期,文件作用域與功能范圍

[英]Static variable lifetimes, file-scope vs. function scope

假設我有一個.cpp文件:

static Foo aFoo;

Foo& staticFoo(){
    return aFoo; 
}

Foo& singletonFoo(){ // not thread safe in c++-03
    static Foo staticFoo;
    return staticFoo;
}

.h文件公開這些功能(但不直接顯示aFoo )。

  1. 我確定aFoo會在staticFoo之前初始化嗎?
  2. 我確定staticFoo之后aFoo被銷毀了嗎?
  3. 我確定程序中的任何自動存儲持續時間變量之后aFoo被銷毀了嗎?
  1. 否。如果有人在靜態初始化期間從另一個翻譯單元調用singletonFoo ,則未指定。
  2. 否,因為破壞是按照相反的順序進行的,因此我們已經確定不能保證施工。
  3. 所有本地/自動變量之后, aFoo將被銷毀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM