关于指针和对象的问题?

chu*_*tar 1 c++ pointers scope

只是想知道,如果我静态创建一个指针作为数据成员的对象,然后对象超出范围,指针会发生什么?Chuma的

Mar*_*som 12

根本没有指针发生任何事情,它就不复存在了.如果它指向需要释放的东西,那么你就会遇到内存泄漏.

要么将代码添加到执行正确清理指针的析构函数中,要么使用"智能指针"自动清理它们.

编辑:如果你真的想要创建一个静态对象,通过static在函数内部用关键字声明它,那么答案是不同的.静态对象一旦通过第一次执行声明它的函数构造,就会继续存在直到程序结束.其数据成员(包括指针)仍然有效.对函数的后续调用将访问同一对象.如果对象已分配任何内存,它将保持分配状态,除非显式删除它.