是什麼區別:C++ 11中的靜態局部變量?
class A {
public:
static const A& GetInstance() {
static A a;
return a;
}
};
和
class B {
public:
static const B* GetInstance() {
static B* b = new B;
return b;
}
};
? A和B之間單身人士的生活有什麼不同?對象的內存位置?任何差異一般?
作爲一種事後,也有可能是在程序行爲時A''或'B'過大而差異分別適合堆或數據段。如果'B'太大,那麼'new B'應該拋出'std :: bad_alloc'。在'A'的情況下,我不確定是否拋出可捕獲的異常,或者程序是否會發生seg-fault和死亡。 – paddy