這裏的優勢是兩個單身,是什麼使第一個可取,因爲雙方將實例對應的類只有一個實例:什麼是使用的shared_ptr與單
第一:
class SharedPointerSingleton {
public:
static std::shared_ptr< SharedPointerSingleton> getSingleton(
{
if(s_pSingleton== 0) s_pSingleton = std::shared_ptr< SharedPointerSingleton>(new SharedPointerSingleton());
return s_pSingleton;
}
private:
SharedPointerSingleton(){};
static std::shared_ptr< SharedPointerSingleton> s_pSingleton;
};
第二種:
class PointerSingleton {
public:
static PointerSingleton * getSingleton(
{
if(pSingleton== 0) pSingleton = new PointerSingleton());
return pSingleton;
}
private:
PointerSingleton(){};
static PointerSingleton * pSingleton;
};
你絕對應該使用邁爾斯的單例而不是這兩種解決方案。 – Rakete1111
如果你真的想建立一個單身人士(很多人說不),那麼這是你如何做到這一點:https://stackoverflow.com/questions/17712001/how-is-meyers-implementation-of-a- singleton-actually-a-singleton – NathanOliver
其實我需要知道第一個的優點,而不是尋找更好的解決方案 – muaz