一段程序,不知道错在哪,高手帮偶看看,万分感谢。

sdsdss sdsdss 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
偶刚才发错拉地方。
第一次来这里问题,菜鸟水平,希望理解。
偶那个class Salermgr :public Mgr,public Bagman 类里的问题。
具体也写在下面注释里,不知道为什么无法访问。
谢谢!!!!
==================================================
#include <iostream.h>
#include <fstream.h>
#include <string.h>
#include <conio.h>

class Employee
{
public:
void setname(); //设置姓名
void setid(); //设置编号
void display(); //显示信息
char * getname() //提取姓名
{ return(name); }
char * getid() //提取编号
{ return(id); }
char * getgrade() //提取等级
{ return(grade);}
float getpay() //提取月薪
{ return(pay); }
//virtual void upgrade()=0; //升级函数
virtual void dopay()=0; //计算月薪
Employee(); //构造函数
virtual ~Employee() //析构函数
{
delete [] name;
delete [] id;
delete [] grade;
// delete [] maxid;
}
protected:
char * name;
char * id;
char * grade;
float pay;
// static char * maxid;
};


void Employee :: setname()
{
cout<<"请输入你的姓名:";
cin>>name;
}

void Employee :: setid()
{
cout<<"请输入你的编号:";
cin>>id;
}

void Employee :: display()
{
cout<<"-----------------"<<endl;
cout<<"○ 姓名 : "<<name<<endl;
cout<<"○ 编号 : "<<id<<endl;
cout<<"○ 等级 : "<<grade<<endl;
cout<<"○ 工资 : "<<pay<<"元"<<endl;
cout<<"-----------------"<<endl;
}

Employee :: Employee()
{
name=new char[20];
id=new char[20];
grade=new char[20];
// maxid=new char;
strcpy(name,"");
strcpy(id,"");
strcpy(grade,"");
// strcpy(maxid,"");
pay=0.0f;
}

//////////////////////////////////

class Artisan : public Employee //技工月薪计算函数
{
public:
void settime(); //设置工作时间
virtual void dopay() //计算本月月薪
{ pay=hour * hourpay; }
Artisan();
~Artisan() {}
protected:
float hourpay;
int hour;
};

void Artisan :: settime()
{
cout<<"请输入工作时间:";
cin>>hour; //????尚未添加监视
}

Artisan :: Artisan()
{
hourpay=100.0f;
hour=0;
strcpy(grade,"技工");
}

////////////////////////////////////


class Mgr : public Employee //经理月薪计算函数
{
public:
void dopay() //工资计算
{ pay=mgrpay; }
Mgr()
{ mgrpay=8000.0f; //固定工资
strcpy(grade,"经理"); //设置等级
}
~Mgr() {}
protected:
float mgrpay;
};

////////////////////////////////////


class Bagman : public Employee //推销员月薪计算函数
{
public:
void setsaler(); //设置本月销售额
void dopay() //计算本月月薪
{ pay=saleroom * distill; }
Bagman();
~Bagman() {};
protected:
float distill,saleroom; //销售金额
// static float all_saleroom; //本月总销售总额
};

Bagman :: Bagman()
{
distill=0.04f;
// all_saleroom=0.0f;
strcpy(grade,"推销员");
}

void Bagman :: setsaler()
{
cout<<"请输入销售金额:"; //添加监视
cin>>saleroom;
//all_saleroom+=saleroom;
}

//////////////////////////////////////
/*
class Salermgr :public Mgr,public Bagman //销售经理月薪计算函数
{ //仅次类有问题
public:
Salermgr();
void dopay();
};

Salermgr :: Salermgr()
{
mgrpay=5000.0f;
distill=0.05f;
strcpy(grade,"销售"); //???? grade无法访问
}

void dopay()
{
pay=mgrpay + distill * all_saleroom; //???? pay 无法访问
}
*/
/////////////////////////////////////

void main()
{
/* //技工
Artisan art;
art.setname();
art.setid();
art.settime();
art.dopay();
art.display();

Mgr mgr; //经理
mgr.setname();
mgr.setid();
mgr.dopay();
mgr.display();
*/

Bagman bag; //销售员
bag.setname();
bag.setid();
bag.setsaler();
bag.dopay();
bag.display();

/*
Salermgr sal; //销售经理
sal.setname();
sal.setid();
sal.dopay();
sal.display();
*/

}
...全文
评论 11
收藏 已收藏
分享
返回顶部
sdsdss
C++ 语言 65,214 成员 250,514 内容