c++ - 当我已经有一个构造函数时,为什么必须在 this 中有默认构造函数
问题描述
为什么在这种情况下必须有一个默认构造函数我的意思是如果在 class car 中如果我添加 car(){} 函数则不会显示错误!但我已经有一个构造函数 car(int p,string s)
#include<iostream>
using namespace std;
class car{
int price;
int model_no;
string name;
public:
void print(){
cout<<name<<endl;cout<<price<<endl;
}
car(int p,string s){
price=p;
name=s;
}
car(car&x){
price=x.price;
}
};
int main(){
car a;
a(5,"BMW");
a.print();
//cout<<a.name;
//cout<<sizeof(car);
return 0;
}
解决方案
car a;
尝试调用标准构造函数,因为您没有提供任何参数。但是没有标准的构造函数,所以它要求一个。
a(5, "BMW");
尝试调用操作员()
,但没有这样的操作员。
简单地写car a(5, "BMW");
而不是car a; a(5, "BMW")
推荐阅读
- sql - 如何查询数据库以修改记录
- python-3.x - 通过子字符串值列表获取列
- powershell-4.0 - PowerShell中分隔线的重复字符
- javascript - 如何根据点击的另一个html页面中的图像刷新html页面中的图像副本?
- batch-file - 我的批处理文件代码有问题,找不到问题
- vue.js - vue.js“类型错误:无法读取未定义的属性‘路径’”
- oracle - 如何在子表ORACLE SQL中分配两个外键?
- r - 为什么 R 不应用具有反应值的 mutate ?
- ios - GameKit 中的 ViceroyTrace 错误
- ios - 如何向 UITableViewController 添加粘性页脚?