错误:在 C++ 中没有用于调用构造函数的匹配函数
Posted
技术标签:
【中文标题】错误:在 C++ 中没有用于调用构造函数的匹配函数【英文标题】:Error: no matching function for call to constructor in C++ 【发布时间】:2020-10-08 07:27:36 【问题描述】:我正在制作一个小程序,它使用构造函数、类、对象和继承来显示所选项目的价格。但是,派生类中的两个不同构造函数出现两个错误,我该如何解决这个问题?
#include<iostream>
using namespace std;
class Beverage
public:
int cost_of_water, cost_of_sugar;
Beverage(int x, int y)
cost_of_water = x;
cost_of_sugar = y;
int computeCost()
void print()
cout<<"The cost of the beverage is: ";
;
class Tea: public Beverage
public:
int price_of_tea_leaves;
Tea(int a)
price_of_tea_leaves = a;
int computeCost()
int cost = cost_of_sugar + cost_of_water + price_of_tea_leaves;
return cost;
;
class Coffee: public Beverage
public:
int price_of_coffee_powder;
Coffee(int b)
price_of_coffee_powder = b;
int computeCost()
int cost = cost_of_sugar + cost_of_water + price_of_coffee_powder;
return cost;
;
int main()
int m,n;
cout<<"*****Welcome to the cafeteria management system*****";
cout<<"1 FOR TEA, 2 FOR COFFEE";
cin>>m;
if(m = 1)
Beverage B(10,5);
Tea T(10);
B.print();
T.computeCost();
else if (m = 2)
Beverage B(10,5);
Coffee C(15);
B.print();
C.computeCost();
else
cout<<"Thank You!";
【问题讨论】:
【参考方案1】:所以,这里是运行良好的代码:
#include<iostream>
using namespace std;
class Beverage //base class
public:
int cost_of_water, cost_of_sugar;
Beverage(int x, int y) //base class constructor
cost_of_water = x;
cost_of_sugar = y;
int computeCost()
;
class Tea: public Beverage //derived class
public:
int price_of_tea_leaves;
Tea(int a):Beverage(10,5) //derived class constructor
price_of_tea_leaves = a;
int computeCost()
int cost = cost_of_sugar + cost_of_water + price_of_tea_leaves;
return cost;
void print()
cout<<"The cost of the tea is: "<<computeCost();
;
class Coffee: public Beverage //derived class
public:
int price_of_coffee_powder;
Coffee(int b):Beverage(10,5) //derived class constructor
price_of_coffee_powder = b;
int computeCost()
int cost = cost_of_sugar + cost_of_water + price_of_coffee_powder;
return cost;
void print()
cout<<"The cost of the coffee is: "<<computeCost();
;
int main()
int m,n;
cout<<"*****Welcome to the Cafeteria management system*****"<<endl;;
cout<<"Input 1 for TEA and 2 for COFFEE: ";
cin>>m;
if(m == 1)
Beverage B(10,5);
Tea T(10);
T.print();
else if (m == 2)
Beverage B(10,5);
Coffee C(25);
C.print();
else
cout<<"ByeBye!";
【讨论】:
以上是关于错误:在 C++ 中没有用于调用构造函数的匹配函数的主要内容,如果未能解决你的问题,请参考以下文章