C++ new与默认构造函数
1、new与默认构造函数 在C++语言中,当通过 new 操作为类定义对象时,同时,类中没有定义默认的构造函数时, 系统会自动提供并调用一个默认的构造函数。
但是,当类中定义了带参数的构造函数,同时,又没有定义默认构造函数时,系统就不会提供并调用默认的构造函数, 在这时,如果进行new操作并没有传递参数,或传递参数的数量不对时, 就会出现new操作找不到默认构造函数的错误。
2、 例子: class Human //定义了人类 { char *name; Human(int a) //带参数的构造函数 { Age = a; name = new char[50]; } ~Human() { delete name; } };
Human *ZS; //定义了指针对象ZS ZS = new Human; //错误,类中没有定义默认的构造函数 ZS = new Human( 18 ); //正确,根据参数在类中找到了对应的带参数的构造函数 不要停留在理论学习上,尽快转到真实环境进行代码编写实践,请下载下方的训练环境。 >>>下载训练环境与使用说明(使用真实的开发环境,结合游戏闯关进行编程训练)
|