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.

  • 相关阅读:
    libusbwin32
    KMP
    windows.h
    iomanip
    C++继承
    LIST
    fstream
    VS2010中调试c++程序的方法
    sstream
    char 与char* 字符串与字符
  • 原文地址:https://www.cnblogs.com/lemaden/p/10238011.html
Copyright © 2011-2022 走看看