我希望在我的对象中有计时器,这可以算作例如。 10秒后,它会破坏自己。
我想到了这样的事情:
class A{
int interval;
void count(){
/*clock starts putting value in interval*/
if(interval < 10) delete this;
};
};
答案 0 :(得分:1)
你应该在程序的主线程中检查删除。
#include <time.h>
class A{
time_t m_tCreateTime;
int m_iInterval;
A():
m_tCreateTime(time()),
m_iInterval(10) {
}
void checkDelete() {
/*clock starts putting value in interval*/
if( time() - m_tCreateTime > m_iInterval )
delete this;
}
};
如果您有多线程应用程序,并希望独立于自己的线程中删除对象,则应确保不会在其他线程中使用此对象。