C++ new

 

  在接下来的学习内容中,需要大家有C语言的“指针”基础才可以学习,如果没有C语言的“指针”基础请通过右方目录中,顶部的“C教程”找到“C 指针”先进行学习。

 

  接下来,我们准备为大家介绍new操作。

 

   (1)new操作可以让我们的程序在运行的过程中动态地分配内存空间,并返回一个指针。

 

   (2)当我们在C++中使用new操作时,我们将要使用“指针对象”去保存它的返回值。

 

  new语法格式如下:

 

      new 类名(或C数据类型,或结构体);

 

  语法格式分析:

  (1)以new开头,格式要求

  (2)输入“类名”或“C的数据类型、结构体”,这样,它就会根据“类名”或“数据类型”或“结构体”,到内存

     中分配一块大小合适的存储空间,并返回成功分配以后的内存空间起始地址。

  (3)如果由于内存不足等原因无法分配空间,则new会返回一个空指针NULL。

  (4)new调用时,如果是对类进行操作,它会根据参数找到要调用的构造函数。

 

 

 

 

  接下来,我们再来看看指针对象的定义格式

  指针对象的定义格式如下:

 

     类名  *对象名

 

  格式分析:

  (1)类名

  (2)*,星号,格式要求,不能省略。

  (3)对象名,该对象用于存放new操作所分配的内存空间起始地址。

  

 

 

 

 

接下来,我们就结合例子来作进一步的学习

 

例子1:

Class  DongWu   //动物类

{

  public:

    int head; //头

    int body;  //身

    int Leg;  //腿

    int  x;    //移动的距离

 

    DongWu() //构造函数 new操作时如果没有参数,则调用默认的构造函数

    {

     head = 1;

     body = 1;

     Leg = 4;

     Tail = 1;

    }

 

    DongWu(int a,int b) //构造函数 new操作时会根据参数找到对应的构造函数来调用

    {

     head = a;

     body = 1;

     Leg = b;

     Tail = 1;

    }

 

    void MX(); //移动的方法

};

 

void Dongwu::MX()

{

   x=x+1;  //MX是类中的方法,可以防问私有属性x

   body = 1;  //MX是类中的方法,可以防问公有属性body

}

 

 

DongWu  *Cow1;   //定义一只牛的指针对象Cow1

 

Cow1 = new DongWu; //通过new根据DongWu类分配内存空间,并返回所分配的内存空间起始地址,保

            存于“指针对象”Cow1中。

            new操作时调用默认构造函数

 

 

DongWu  *Cow2;   //定义一只牛的指针对象Cow2

 

Cow2 = new DongWu(1,4); //通过new根据DongWu类分配内存空间,并返回所分配的内存空间

                  起始地址,保存于“指针对象”Cow2中。

                  new操作时会根据参数找到对应的构造函数来调用

 

 

float *p = new float(1.5);  //通过new分配一个浮点型的内存空间,并在所分配的内存空间中存储了浮点数

             1.5,然后,将所分配的内存空间起始地址保存于“指针变量”p中。

 

int *pi = new int[10];  //通过new分配一个整型数组的内存空间,然后,将所分配的内存空间起始地址

           保存于“指针变量”pi中。

 

 

 

 

  通过上面的学习,相信大家对new操作有了一个初步了解,但是,如何灵活地运用这个知识点呢?那么,我们就要通过下方的按钮进入到游戏中,然后,运用该知识点去完成任务,这样,才可以加深大家对该知识点的理解和运用,以及“尽快进入到编程的状态”

 

  要达到灵活运用,是需要通过不停地反复训练才可以做到,所以,不要停留在理论规则上面,快动起来吧!

 

 

(通过游戏模式学习与训练,需要在电脑上运行)

进入游戏学习与训练