admin管理员组文章数量:1565355
常常在编译C++的时候,会出现这个问题,这儿是因为系统找不到默认的构造函数。
因为类在没有定义任何构造函数的时候,系统才会默认产生构造函数,一旦定义了任何形式的构造函数,系统就不会在产生默认的构造函数了。该错误是所找不到正确的无参数的构造函数。
所以,一般情况下,只需要写一个空的构造函数,就可以解决问题。
比如:
#include <iostream>
#include <string>
using namespace std;
class Salary
{
private:
double Wage, Subsidy, Rent, WaterFee, ElecFee;
public:
Salary(double PW,double PS ,double PR ,double PWa,double PE)
{
Wage = PW;
Subsidy = PS;
Rent = PR;
WaterFee = PWa;
ElecFee = PE;
}
//Salary(){}; 这个就是无参数的构造函数,而本程序正需要调用构造的函数,如果没有本语句,程序将出错
double getPW()
{
return Wage;
}
double getPS()
{
return Subsidy;
}
double getPR()
{
return Rent;
}
double getPWa()
{
return WaterFee;
}
double getPE()
{
return ElecFee;
}
double RealSalary()
{ double Y;
Y = Wage + Subsidy-Rent-WaterFee-ElecFee ;
return Y;
}
void inputSalaryinfo()
{
cout<<"请输入该员工基本工资:"<<endl;
cin>>Wage;
cout<<"请输入该员工岗位津贴:"<<endl;
cin>>Subsidy;
cout<<"请输入该员工房租:"<<endl;
cin>>Rent;
cout<<"请输入该员工水费:"<<endl;
cin>>WaterFee;
cout<<"请输入该员工电费:"<<endl;
cin>>ElecFee;
}
void inputsalaryinfo(double);
void Realsalary(double);
};
{
cout<<"请输入该员工基本工资:"<<endl;
cin>>Wage;
cout<<"请输入该员工岗位津贴:"<<endl;
cin>> Subsidy;
cout<<"请输入该员工房租:"<<endl;
cin>> Rent;
cout<<"请输入该员工水费:"<<endl;
cin>> WaterFee;
cout<<"请输入该员工电费:<<endl;
cin>> ElecFee;
}
*/
//Salary::Salary()
void main()
{
char name[10];
cout<<"员工姓名"<<endl;
cin>>name;
Salary a;
a.inputSalaryinfo();
cout<<"实发工资为:"<<a.RealSalary()<<endl;
}
本文标签: Defaultconstructor
版权声明:本文标题:no appropriate default constructor available 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1726299578a1064971.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论