Visual C++ 2005中与C++的对比(内存的开辟、销毁)

 

Visual C++ 2005

     

      value class Myclass                       //值类型

    {

        private:

 

             m_member;

 

        public:

 

             void method(void);

    }

 

    {

 

        Myclass classObject;                 //在栈中为新建的对象实例classObject开辟一块内存

 

        Myclass^ classPtr = gcnew Myclass(); //在托管堆中为classPtr所指的对象实例开辟一块内存

 

        classPtr = &classObject;             //利用&classObject对象的地址赋给classPtr

 

        delete classPtr;                     //调用析构函数来释放非托管资源

 

    }                                        //遇到封闭的大括号时会自动调用析构函数来释放确定性资源并销毁为classObject开辟的内存

 

// 托管堆中classPtr所指对象的内存会由垃圾回收器自动处理

 

ref class Myclass                        //引用类型

    {

        private:

 

             m_member;

 

        public:

 

             void method(void);

    }

 

    {

 

        Myclass classObject;                 //在托管堆中为新建的对象实例classObject开辟一块内存

 

        Myclass^ classPtr = gcnew Myclass(); //在托管堆中为classPtr所指的对象实例开辟一块内存

 

        classPtr = %classObject;             //利用%classObject对象的地址赋给classPtr

 

        delete classPtr;                     //调用析构函数来释放非托管资源

 

    }                                        //遇到封闭的大括号时会自动调用析构函数来释放确定性资源

 

//托管堆中classObject所占内存、classPtr所指对象的内存会由垃圾回收器自动处理

 


C++

     

      class Myclass                           //标准的C++本地类

    {

        private:

 

             m_member;

 

        public:

 

             void method(void);

    }

 

    {

 

        Myclass classObject;                //在栈中为新建的对象实例classObject开辟一块内存

 

    }                                       //遇到大括号时会自动调用析构函数来释放确定性资源//并销毁为classObject开辟的内存

 

    Myclass* classPtr = new Myclass();      //在本地堆中为classPtr所指的对象实例开辟一块内存

 

    classPtr = &classObject;                //利用&classObject对象的地址赋给classPtr

 

delete classPtr;                        //调用析构函数来释放资源并销毁为classPtr所指的对象实例开辟的内存

posted on   开(^_^)心  阅读(235)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了



点击右上角即可分享
微信分享提示