c++局部变量在外可用的方法

C++的局部变量在作用域结束后,一般都会被回收。如下面这段代码

1 map<a*, b*> _map;
2 
3 void fun() 
4 {
5     a _a;
6     b _b;
7     _map[&_a] = &_b;
8 }

当fun执行完成后,a、b对象都会被析构,所以再访问这两个对象就会出现问题。

一种方法是将a、b对象的作用域改为全局的,但不符合建议。

一种解决方法是用new实例化对象,这样,当fun执行完成后,C++便不会主动回收这两个对象

1 void fun() 
2 {
3     a* _a = new a();
4     b* _b = new b();
5     _map[_a] = _b;
6 }

但new完对象后,一定要delete掉该对象。delete相当于调用了对象的析构函数。

 

原文链接: https://www.cnblogs.com/winstonet/p/9365687.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    c++局部变量在外可用的方法

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/278177

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月15日 上午3:12
下一篇 2023年2月15日 上午3:14

相关推荐