zoukankan      html  css  js  c++  java
  • C++——动态内存分配1

    9.动态内存分配  new 类型名T(初值列表)

    其功能是在程序执行期间申请用于存放T类型对象的内存空间,并依初值列表赋以初值,结果值:成功则T类型的指针,指向新分配的内存;失败则为0(null)。若要释放内存,则用delete *p;释放指针p指向的内存,P必须是new操作的返回值。

    //动态分配

    #include<iostream>

    using namespace std;

    class Point

    { public:

           Point()

          {   X=Y=0;     cout<<"Default Constructor called."<<endl;     }

           Point(int xx,int yy)

          {   X=xx;     Y=yy;     cout<< "Constructor called."<<endl;     }

           ~Point()

          {   cout<<"Destructor called."<<endl;    }

           int GetX() {return X;}

           int GetY() {return Y;}

              void Move(int x,int y)

                       {  X=x;  Y=y;   }

      private:

           int  X,Y;

    };

    int main()

    {

         cout<<"Step One:"<<endl;

         Point *Ptr1=new Point;   //动态创建对象,没有给出初值,因此调用缺省构造函数

         delete  Ptr1;   //删除对象,自动调用析构函数

         cout<<"Step Two:"<<endl;

         Ptr1=new Point(1,2);   //动态创建对象,并给出初值,因此调用有形参的构造函数

         delete Ptr1;   //删除对象,自动调用析购函数,指针并没有消失,只是存放的地址没有意义了,重新赋//给地址就又可以用了。

    }//运行结果:

    Step One:

    Default Constructor called.

    Destructor called.

    Step Two:

    Constructor called.

    Destructor called.

  • 相关阅读:
    window.setInterval
    用gcc/g++编译winsock程序
    Yii 三表关联 角色表、角色权限连接表、权限表
    访问CGI程序时不添加 /cgi-bin/ 目录也可访问
    Linux 目录递归赋权,解决 Linux权限不够
    Linux 下用C语言连接 sqlite
    ORACLE中添加删除主键
    Linux 杀死进程
    Oracle 查询重复数据
    exlipse php 插件安装地址
  • 原文地址:https://www.cnblogs.com/lemaden/p/10238011.html
Copyright © 2011-2022 走看看