C++中类的静态成员函数和静态成员变量的有关问题
C++中类的静态成员函数和静态成员变量的问题
有一个类如下,它有两个静态函数和一个静态变量,注意它们都是静态的。
class cTest
{
public:
static cTest *GetTest()
{
if ( pTest == NULL )
{
pTest = new cTest;
}
return pTest;
}
static void Release()
{
if ( pTest != NULL )
{
delete pTest;
pTest = NULL;
}
}
private:
static cTest *pTest;
}
主程序(MainApp)中多次调用了cTest类的GetTest函数。当主程序退出运行时,在主程序的析构函数~MainAPP()中,需不需要执行cTest类的Release()函数?如果不执行cTest的Release()函数,会有内存泄露问题吗?也就是说,主程序退出后,主程序中cTest类执行过GetTest(),它申请的new CTest会不会被自动释放?谢谢!
------解决方案--------------------
这是单例模式的释放问题,希望对你有用:
http://blog.****.net/realxie/article/details/7090493
------解决方案--------------------
new出来的东西,在终止之前必须手工用delete摧毁。通过使用本地静态实例代替动态实例,就不必手动销毁实例了。
------解决方案--------------------
主程序,如果是纯客户端态的(独立进程),无须Release
否则,比如服务器态的、共享进程的,还是需要Release
无论怎样
在一个自己new出来的东西不再使用时,都应该显示地 delete
这样的习惯,是合格程序员应该具有的,别投机取巧:)
------解决方案--------------------
需要释放
------解决方案--------------------
不会自动释放,有两种方法,一种是你自己处理,还有一种是计算机重启。
有一个类如下,它有两个静态函数和一个静态变量,注意它们都是静态的。
class cTest
{
public:
static cTest *GetTest()
{
if ( pTest == NULL )
{
pTest = new cTest;
}
return pTest;
}
static void Release()
{
if ( pTest != NULL )
{
delete pTest;
pTest = NULL;
}
}
private:
static cTest *pTest;
}
主程序(MainApp)中多次调用了cTest类的GetTest函数。当主程序退出运行时,在主程序的析构函数~MainAPP()中,需不需要执行cTest类的Release()函数?如果不执行cTest的Release()函数,会有内存泄露问题吗?也就是说,主程序退出后,主程序中cTest类执行过GetTest(),它申请的new CTest会不会被自动释放?谢谢!
------解决方案--------------------
这是单例模式的释放问题,希望对你有用:
http://blog.****.net/realxie/article/details/7090493
------解决方案--------------------
new出来的东西,在终止之前必须手工用delete摧毁。通过使用本地静态实例代替动态实例,就不必手动销毁实例了。
------解决方案--------------------
主程序,如果是纯客户端态的(独立进程),无须Release
否则,比如服务器态的、共享进程的,还是需要Release
无论怎样
在一个自己new出来的东西不再使用时,都应该显示地 delete
这样的习惯,是合格程序员应该具有的,别投机取巧:)
------解决方案--------------------
需要释放
------解决方案--------------------
不会自动释放,有两种方法,一种是你自己处理,还有一种是计算机重启。