我创建了3个类:Auto
(表示"汽车")、Klant
(表示"客户")和AutoVerhuur
(表示"汽车经销商")。
在我的main()
中,我已经创建了Auto
和Klant
对象,并且正在尝试创建AutoVerhuur
对象。
在最后一个类中,我基本上想引用一个特定的Klant
和Auto
(哪个客户租了哪辆车),但是,当我尝试这样做时,我得到了一个错误:
错误:没有与调用"Auto::Auto()"匹配的函数
如何在对象中正确引用其他对象?
下面是我的代码,如果你想看看:
#include <iostream>
using namespace std;
class Auto{
private:
string type;
double prijs_per_dag;
public:
Auto(string type, double prijs_per_dag){
this->type = type;
this->prijs_per_dag = prijs_per_dag;
}
void set_prijs_per_dag(double percentage){
this->prijs_per_dag = percentage;
}
double get_prijs_per_dag(){
return prijs_per_dag;
}
};
class Klant{
private:
string naam;
double korting_percentage;
public:
Klant(string naam):
naam(naam){}
void set_korting(double percentage){
this->korting_percentage = percentage;
}
double get_korting(){
return this->korting_percentage;
}
string get_name(){
return naam;
}
void set_name(string naam){
this->naam = naam;
}
};
class AutoHuur{
private:
int aantal_dagen;
Auto wagen;
Klant huur;
public:
AutoHuur(Auto car, Klant huurder, int dagen){
wagen = car;
huur = huurder;
aantal_dagen = dagen;
}
};
int main(){
Klant k("Mijnheer de Vries");
k.set_korting(10.0);
Auto a1("Peugeot 207", 50);
AutoHuur ah1(a1, k, 4);
}
1条答案
按热度按时间xxls0lw81#
您的
Auto
类没有定义default constructor,但是您的AutoHuur
类有一个Auto wagen;
数据成员,编译器试图将其构造为默认值(因为您没有告诉它其他情况),因此出现错误。因此,您需要:
Auto
类一个默认构造函数,例如:AutoHuur
类的构造函数以使用其member initialization list,从而使用所需的Auto
构造函数构造wagen
成员(您也应该对其他数据成员执行相同的操作),例如: