1. 这是一个单例模式的实现,请丰富下面的代码,解决该模式合适的时候释放m_pInstance指向空间的问题。
class CSingle
{
public:
static CSingle * GetInstance()
{
if(m_pInstance == NULL)
m_pInstance = new CSingle();
return m_pInstance;
}
private:
CSingle(){};
static CSingle * m_pInstance;
// 添加代码
}
class Engine
{
//
}
class Underpan
{
//
}
class Wheel
{
//
}
class Car
{
public:
Car(Underpan u, Wheel w, Engine e)()
{
}
fun()
{
//dosomething
}
}
// 以下为需改造的代码
int main(int argc, char* argv[])
{
Engine engine = Engine();
Underpan underpan = Underpan();
Wheel wheel = Wheel();
ICar* car = new Car(underpan,
wheel, engine);
car.fun();
if(car != NULL)
{
delete car;
car = NULL;
}
return 0;
}
// 以上为需改造的代码
使用工厂方法模式将以上需改造部分的代码重写一下