首页 > 解决方案 > 当我已经有一个构造函数时,为什么必须在 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;
}

标签: c++

解决方案


car a; 

尝试调用标准构造函数,因为您没有提供任何参数。但是没有标准的构造函数,所以它要求一个。

a(5, "BMW");

尝试调用操作员(),但没有这样的操作员。

简单地写car a(5, "BMW");而不是car a; a(5, "BMW")


推荐阅读