在C++中我 的实体类上有数据(在托管C++上也有(好像)),可是我在C#中通过托管C++调用的时候,数据就没有了?请问是不是C++把它给释放了,如果是,请问如何处理

解决方案 »

  1.   

    C++要自己处理回收。凡是new出来的对象要用delete释放,否则会内存泄漏.如:class A{};A* pClassA = new A;delete pClassA;
      

  2.   

    好像在定义C++类时有个__gc之类的关键字,去掉即为自己控制,不记得了。
      

  3.   

    我现在使用了一个托管C++类,在里面用了指针,但是我不想让系统自动回收,想自己控制回收,应该如何做。
    代码形式如下:__gc class a
    {
       Point3d* pt;
    };如何控制pt的回收?
      

  4.   

    __gc class a
    {
      Point3d* pt;public:
      a():pt(NULL){}
      ~a(){if(pt)delete pt;}
    };Point3d 这个类应该不是托管类吧,那么就要自己回收。