Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 既然我已经有了一个构造函数,为什么还要有默认构造函数呢_C++ - Fatal编程技术网

C++ 既然我已经有了一个构造函数,为什么还要有默认构造函数呢

C++ 既然我已经有了一个构造函数,为什么还要有默认构造函数呢,c++,C++,为什么在这种情况下需要有一个默认构造函数?我的意思是,如果在类car中添加car(){}函数,那么不会显示错误!!但我已经有了一辆构造车(int p,string s) #包括 使用名称空间std; 班车{ 国际价格; int型号_编号; 字符串名; 公众: 作废打印(){ 库特 尝试调用标准构造函数,因为您没有给出任何参数。但是没有标准构造函数,因此它正在请求一个 a(5, "BMW"); 尝试呼叫操作员(),但没有这样的操作员 只需编写cara(5,“BMW”);而不是cara;a(5,“

为什么在这种情况下需要有一个默认构造函数?我的意思是,如果在类car中添加car(){}函数,那么不会显示错误!!但我已经有了一辆构造车(int p,string s)

#包括
使用名称空间std;
班车{
国际价格;
int型号_编号;
字符串名;
公众:
作废打印(){
库特
尝试调用标准构造函数,因为您没有给出任何参数。但是没有标准构造函数,因此它正在请求一个

a(5, "BMW");
尝试呼叫操作员
()
,但没有这样的操作员


只需编写
cara(5,“BMW”);
而不是
cara;a(5,“BMW”)

cara;
调用默认构造函数,
a(5,“BMW”);
调用不存在的
操作符()
用户提供的构造函数会抑制编译器生成的默认构造函数。很好!如果您已经尽力告诉编译器应该对成员执行什么操作,以及哪些成员必须传递给构造函数,那么为什么要让它继续假设可以创建具有未初始化成员的实例?哦,还有一点:你的
model\u no
是未初始化的。这正在等待发生。你应该编写基本类型的成员,比如
int\u price{};int model\u no{}
,以确保不会咬到你。编辑:在意识到主要问题后,我将职业训练局视为一个打字错误。
car a; 
a(5, "BMW");