您的位置:首页 > 其它

设计模式之单例模式

2016-07-21 22:26 239 查看
bak 类是一个单例类,只能通过静态 getInstance 接口获取bak * 指针。

将构造函数设置为私有的,可以阻止在类外进行创建对象。

class bak
{
private:
bak(){}
public:
~bak(){}
static bak * getInstance()
{
if(m_pBak == NULL){
m_pBak = new bak;
}
return m_pBak;
}
public:
void show()
{
cout<<" show "<<endl;
}
private:
static bak * m_pBak;
};

bak * bak::m_pBak = NULL;
int main(int argc, const char * argv[]) {
// insert code here...
std::cout << "Hello, World!\n";
bak * pB = bak::getInstance();
pB->show();
system("pause");
return 0;
}




构造函数设置为私有可以防止类外创建对象,那么析构函数能不能设置私有? 可以

析构函数设置为私有,可以防止在类外 删除对象

class bak
{
private:
bak(){}
~bak(){}
public:
static bak * getInstance()
{
if(m_pBak == NULL){
m_pBak = new bak;
}
return m_pBak;
}
public:
void show()
{
cout<<" show "<<endl;
}
private:
static bak * m_pBak;
};

bak * bak::m_pBak = NULL;
int main(int argc, const char * argv[]) {
// insert code here...
std::cout << "Hello, World!\n";
bak * pB = bak::getInstance();
pB->show();
delete  pB;
system("pause");
return 0;
}


结果直接报错

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: