C++ new与默认构造函数

  

1、new与默认构造函数

   在C++语言中,当通过 new 操作为类定义对象时,同时,类中没有定义默认的构造函数时

  系统会自动提供并调用一个默认的构造函数。

 

  但是,当类中定义了带参数的构造函数,同时,又没有定义默认构造函数时,系统就不会提供并调用默认的构造函数,

  在这时,如果进行new操作并没有传递参数,或传递参数的数量不对时,

  就会出现new操作找不到默认构造函数的错误。

 

2、 例子:

       class Human  //定义了人类

       {
           public:
             int head;
             int body;
             int leg;
             int hand;
             int eye;
             int mouse;
             int ear;
             int nose;

             char *name; 

             Human(int a)  //带参数的构造函数

             {

                Age = a;   

                name = new char[50];            

             }  

             ~Human()

             {

                 delete name; 

             }

       };

      

       Human *ZS;   //定义了指针对象ZS

       ZS = new Human;    //错误,类中没有定义默认的构造函数

       ZS = new Human( 18 ); //正确,根据参数在类中找到了对应的带参数的构造函数

不要停留在理论学习上,尽快转到真实环境进行代码编写实践,请下载下方的训练环境。

>>>下载训练环境与使用说明(使用真实的开发环境,结合游戏闯关进行编程训练)