1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 析构函数什么时候调用

析构函数什么时候调用

时间:2021-08-31 19:00:12

相关推荐

析构函数什么时候调用

在这个对象的作用域最后..比如你在main里面声明了一个类A..那么~A()会在main结束时调用..如果在自定义的函数f()里面声明了一个A 函数f结束的时候就会调用~A()或者你delete 指向A的指针..或者显式的调用析构函数

追问:

也就是说在包含该对象的函数的末尾就会调用析构函数喽?

追答:

是的....局部的对象 在该对象声明的函数末尾被释放...你可以看下作用域的定义..析构函数就是在对象的作用域的末尾释放为了不误导人...我还是举个例子..如果是class A{....}void f(){A a;//这种情况a的作用域就是整个函数 在f末尾释放}void f(){for(A a;a.yes();a++)//这里声明的是一个计数器a..(这种情况一般是迭代器)..{...} //这里是a作用域结束的时候 调用析构函数}void f(){A* p=new A;delete p;//A作用域结束 调用析构}如果A是全局对象..那么就在程序末尾释放显式的调用很少见..我就不举例了..

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。