是什么区别: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