读书人

为何这个程序运行结果错了

发布时间: 2013-11-06 16:26:37 作者: rapoo

为什么这个程序运行结果错了
#include <iostream>
using namespace std;
class Salary
{ public:
Salary(double b,double s,double r,double w,double e);

void setWage(double b){ Wage=b; }
double getWage(){ return Wage; }

void setSubsidy(double s){Subsidy=s; }
double getSubsidy(){ return Subsidy; }

void setRent(double r){Rent=r; }
double getRent(){ return Rent; }

void setWaterFee(double w){WaterFee=w; }
double getWaterFee(){ return WaterFee; }

void setElecFee(double e){ ElecFee=e; }
double getElecFee(){ return ElecFee; }

double RealSalary(){ return Wage+Subsidy-Rent-WaterFee-ElecFee;}
private:
double Wage;
double Subsidy;
double Rent;
double WaterFee;
double ElecFee;
};


Salary::Salary(double b=0.0,double s=0.0,double r=0.0,double w=0.0,double e=0.0)
{
Wage=b;
Subsidy=s;
Rent=r;
WaterFee=w;
ElecFee=e;
}

int main()
{
Salary A(4000,500,1000,300,200);
A.getWage();
cout<<"Wage="<<A.getWage<<endl;
A.RealSalary();
cout<<"实发工资= "<<A.RealSalary<<endl;
return 0;
}
[解决办法]

Salary A(4000,500,1000,300,200);
A.getWage();
cout<<"Wage="<<A.getWage()<<endl;
A.RealSalary();
cout<<"实发工资= "<<A.RealSalary()<<endl;
return 0;

注意两个函数要加上括号(),你那两个直接是A.getWage和A.RealSalary错的
[解决办法]
引用:
Salary A(4000,500,1000,300,200);
A.getWage();
cout<<"Wage="<<A.getWage()<<endl;
A.RealSalary();
cout<<"实发工资= "<<A.RealSalary()<<endl;
return 0;

注意两个函数要加上括号(),你那两个直接是A.getWage和A.RealSalary错的

还有一点,你没析构

读书人网 >C++

热点推荐