思路:
由于只有全局与静态可以被类中所有成员使用,而类中存在静态的成员变量、成员函数,由此考虑用静态来解决。
具体方法:
构造函数只调用一次->将成员函数(构造、析构)定义为私有,定义静态成员变量char*s(所有变量所共有),再编写(静态)2个函数<建立与释放函数>,函数1功能:当s!=NULL new开辟空间;函数2功能:当s!=NULL ? 释放 s
***************当存在多个线程时也可能创建2个:::-》让线程同步(加锁::解锁)
class lcass
{
private:
lcass()
{
cout << "构造函数" << endl;
}
~lcass()
{
cout << "析构函数" << endl;
}
public:
static lcass* Creat()
{
if (NULL == mp)
{
//加锁
if (NULL == mp)
{
mp = new lcass;
}
//解锁
}
return mp;
}
static lcass* Delete()
{
if (NULL != mp)
{
delete mp;
mp = NULL;
}
return mp;
}
private:
static lcass* mp;
};
lcass* lcass::mp;
测试用例:
void test4()
{
{
lcass* L;
L = lcass::Creat();
lcass* M;
M = lcass::Creat();
M = lcass::Delete();
}
}
转载于:https://blog.51cto.com/10739786/1747854