no appropriate default constructor available

常常在编译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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值