首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

写了一个类。但是有异常。不知道错哪里唉。

2013-11-13 
写了一个类。。但是有错误。。不知道错哪里唉。。#includeiostreamusing namespace stdclass salary{private:

写了一个类。。但是有错误。。不知道错哪里唉。。
#include"iostream"
using namespace std;
class salary{
private:
double wage,subsidy,rent,waterfee,elecfee;
public:
salary(double a,b,c,d,e):wage(a),subsidy(b),rent(c),waterfee(d),elecfee(e){};
salary(){
wage=subsidy=rent=waterfee=elecfee=0;
};
void setwage(double f){ wage=f; };
void setsubsidy(double f){ subsidy=f; };
void setrent(double f){ subsidy=f; };
void setwaterfee(double f){ waterfee=f; };
void setelecfee(double f){ elecfee=f; };
double getwage(){ return wage; };
double getsubsidy(){ return subsidy; };
double getrent(){ return rent; };
double getwaterfee(){ return waterfee; };
double getelecfee(){ return elecfee; };
double realsalary();
};

double salary::realsalary(){
double realsalary;
realsalary=wage+subsidy-rent-waterfee-elecfee;
return realsalary;
};

class worker{
private:
static int m;
char name[8];
int age;
char dept[8];
salary A;
public:
worker(char a,int b,char c,double d,e,f,g,h): name(a),age(b),dept(c),A(d,e,f,g,h)

m++;
};
int getm(){ return m; };
};

int  worker::m=0;

void main(){
worker x1("liu",20,"suibian",1000,200,500,100,200);
worker x2("pp",21,"suibian",1000,200,500,100,200);
}


错误码:
E:\编程\习题\311.cpp(8) : error C2629: unexpected 'class salary ('
E:\编程\习题\311.cpp(8) : error C2334: unexpected token(s) preceding ':'; skipping apparent function body
E:\编程\习题\311.cpp(39) : error C2629: unexpected 'class worker ('
E:\编程\习题\311.cpp(39) : error C2334: unexpected token(s) preceding ':'; skipping apparent function body
E:\编程\习题\311.cpp(49) : error C2661: 'worker::worker' : no overloaded function takes 8 parameters
E:\编程\习题\311.cpp(50) : error C2661: 'worker::worker' : no overloaded function takes 8 parameters


到底哪里错了。。求大神教一下
[解决办法]
#include"iostream"
using namespace std;
class salary{
private:
double wage,subsidy,rent,waterfee,elecfee;
public:
salary(double a,double b,double c,double d,double e):wage(a),subsidy(b),rent(c),waterfee(d),elecfee(e){};
salary(){
wage=subsidy=rent=waterfee=elecfee=0;
};
void setwage(double f){ wage=f; };
void setsubsidy(double f){ subsidy=f; };
void setrent(double f){ subsidy=f; };
void setwaterfee(double f){ waterfee=f; };
void setelecfee(double f){ elecfee=f; };
double getwage(){ return wage; };
double getsubsidy(){ return subsidy; };
double getrent(){ return rent; };
double getwaterfee(){ return waterfee; };
double getelecfee(){ return elecfee; };
double realsalary();
};

double salary::realsalary(){
double realsalary;
realsalary=wage+subsidy-rent-waterfee-elecfee;
return realsalary;
};

class worker{
private:
static int m;
char name[8];
int age;
char dept[8];
salary A;
public:
worker(char *a,int b,char *c,double d, double e,double f,double g,double h): age(b)

strcpy(name, a);
strcpy(dept, c);
m++;
};
int getm(){ return m; };
};

int  worker::m=0;

void main(){
worker x1("liu",20,"suibian",1000,200,500,100,200);
worker x2("pp",21,"suibian",1000,200,500,100,200);
}
正确的程序
[解决办法]
salary(double a,b,c,d,e):wage(a),subsidy(b),rent(c),waterfee(d),elecfee(e){};
改成
salary(double a,double b,double c,double d,double e):wage(a),subsidy(b),rent(c),waterfee(d),elecfee(e){};
声明参数,不是在声明变量OK?

worker(char a,int b,char c,double d,e,f,g,h): name(a),age(b),dept(c),A(d,e,f,g,h)
worker x1("liu",20,"suibian",1000,200,500,100,200);

你声明的第一个变量时,传递的第一个参数和第三个是const char*型,而你的构造函数第一个和第三个参数的类型定义为char型.可以修改一下你的构造函数,比如:
worker(const char* a,int b,const char* c,double d,double e,double f,double g,double h):age(b),A(d,e,f,g,h)

sprintf(name,"%s",a);
sprintf(dept,"%s",c);
m++;
};

[解决办法]


#include"iostream"
using namespace std;
class salary{
private:
double wage,subsidy,rent,waterfee,elecfee;
public:
salary(double a,double b,double c,double d,double e):wage(a),subsidy(b),rent(c),waterfee(d),elecfee(e){};
salary(){
wage=subsidy=rent=waterfee=elecfee=0;
};
void setwage(double f){ wage=f; };
void setsubsidy(double f){ subsidy=f; };
void setrent(double f){ subsidy=f; };
void setwaterfee(double f){ waterfee=f; };
void setelecfee(double f){ elecfee=f; };
double getwage(){ return wage; };
double getsubsidy(){ return subsidy; };
double getrent(){ return rent; };
double getwaterfee(){ return waterfee; };
double getelecfee(){ return elecfee; };
double realsalary();
};

double salary::realsalary(){
double realsalary;
realsalary=wage+subsidy-rent-waterfee-elecfee;
return realsalary;
};

class worker{
private:
static int m;
char name[8];
int age;
char dept[8];
salary A;
public:
worker(char *a,int b,char *c,double d, double e,double f,double g,double h): age(b)

strcpy(name, a);
strcpy(dept, c);
m++;
};
int getm(){ return m; };
};

int  worker::m=0;

void main(){
worker x1("liu",20,"suibian",1000,200,500,100,200);
worker x2("pp",21,"suibian",1000,200,500,100,200);
cout << x1.getm() <<endl;
}

#include"iostream"
using namespace std;
class salary{
private:
double wage,subsidy,rent,waterfee,elecfee;
public:
salary(double a,double b,double c,double d,double e):wage(a),subsidy(b),rent(c),waterfee(d),elecfee(e){};
salary(){
wage=subsidy=rent=waterfee=elecfee=0;
};
void setwage(double f){ wage=f; };
void setsubsidy(double f){ subsidy=f; };
void setrent(double f){ subsidy=f; };
void setwaterfee(double f){ waterfee=f; };
void setelecfee(double f){ elecfee=f; };
double getwage(){ return wage; };
double getsubsidy(){ return subsidy; };
double getrent(){ return rent; };
double getwaterfee(){ return waterfee; };
double getelecfee(){ return elecfee; };
double realsalary();
};

double salary::realsalary(){
double realsalary;
realsalary=wage+subsidy-rent-waterfee-elecfee;
return realsalary;
};

class worker{
private:
static int m;
char name[8];
int age;
char dept[8];
salary A;
public:
worker(char *a,int b,char *c,double d, double e,double f,double g,double h): age(b)

strcpy(name, a);
strcpy(dept, c);
m++;
};
int getm(){ return m; };
};

int  worker::m=0;

void main(){
worker x1("liu",20,"suibian",1000,200,500,100,200);
worker x2("pp",21,"suibian",1000,200,500,100,200);
cout << x1.getm() <<endl;
}
这是我的代码

热点排行