c++单例模式的疑问
单例模式中instance指针存放的是实例化的Singleton类地址,而在程序结束时所有的全局变量和静态局部变量都会被系统回收,那么为什么还要定义一个垃圾回收类GC来delete掉instance呢?在系统回收的时候instance不是会被销毁吗?是不是这样理解的:在执行Singleton *instance = new Singleton();这段代码后,instance指针本身是在栈中的,它所指向的地址(即new出的Singleton实例)才是在堆中,而在系统回收时,只是把instance本身所在的栈回收了,Singleton实例所在的堆并没有被回收,所以需要我们手动回收堆内存(垃圾回收类GC的作用)。请各位老师替在下解惑,感激不尽,本人对下层的东西实在不是很懂! 貌似有些明白了,先更正我上述表达的一个错误,instance指针本身由于是static型的,并不在堆栈段,而是在数据段中,当其指向new出的一个对象时,该对象会在堆中创建,而系统回收时由于不会主动回收堆中的内存,所以需要手动释放,这就是GC的作用
页:
[1]