C++ new与默认构造函数

 

 

  接下来,我们准备为大家介绍"new与默认构造函数"。

 

   经过前面的学习,我们可以知道,当new操作时,如果类名的后面没有跟参数的时候,new操作会自动调用类中的"默认构造函数",但是,如果,类中没有定义默认构造函数,同时,类中却定以了另外的带参构造函数时,那么,会出现什么情况呢?

 

   (1)如果,类中没有定义默认构造函数,但定义了另外的带参构造函数,这样,另外的带参构造函数会覆盖默认构造函数。

 

   (2)当new操作时,如果类名的后面没有跟参数,同时,类中没有定义默认构造函数,只有带参构造函数时,由于带参构造函数的存在,系统不会再自动提供默认构造函数,从而,导至new操作操作找不到默认构造函数而出错。

 

 

 

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

 

例子1:

Class  DongWu   //动物类

{

  public:

    int head; //头

    int body;  //身

    int Leg;  //腿

    int  x;    //移动的距离

 

    char *name; //名字 

 

    DongWu( int num ) //带参构造函数

    {

     head = 1;

     body = 1;

     Leg = 4;

     Tail = 1;

     name = new char[num]; //通过new分配字符数组的内存空间,并返回内存空间的起始地址给

                 name

    }

 

    ~DongWu()

    {

      delete name; //释放name所指向的内存空间

    }

 

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

};

 

void main()

{

   DongWu *Cow2;    //定义了指针对象Cow2

 

   Cow2 = new DongWu;  //错误,首先,调用默认构造函数,但类中没有定义默认构造函数,

               所以报错。

 

   Cow2 = new DongWu(10);  //正确,首先,根据参数找到带参构造函数

 

   Cow2 = new DongWu(10,3);  //错误,首先,根据参数找不到带参构造函数,类中只有一个带

                    有1个参数的构造函数,所以,报错。

                

}

 

 

 

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

 

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

 

 

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

进入游戏学习与训练