zoukankan      html  css  js  c++  java
  • 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相当于调用了对象的析构函数。

  • 相关阅读:
    js练习题2
    js样式
    js小练习
    css动画样式
    css盒子、布局样式
    css一般样式
    css样式、选择器
    html表格、表单
    html 标签
    mysql连接查询,子查询,联合查询
  • 原文地址:https://www.cnblogs.com/winstonet/p/9365687.html
Copyright © 2011-2022 走看看