c++中一关于继承的问题,有兴趣的来看看!

plovej 2005-04-18 10:35:26
已知Employee和HourlyWorker类的定义和main()函数,请补充完成程序,使之可以正确运行并得到结果如下:
王大名的周薪是$400.00

class Employee
{
public:
Employee(const char*);
void print();
~Employee();
private:
char *name;
};

class HourlyWorker:public Employee
{
public:
HourlyWorker(const char*,double,double);
double getpay();
void print();
private:
double wage;
double hours;
};

int main()
{
HourlyWorker h("王大明",40.0,10.00);
h.print();
return 0;
}

...全文
112 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
why25 2005-04-19
  • 打赏
  • 举报
回复
用DEVC++编译的,没看出来的
正好可以学习,呵呵~
zhangfjj 2005-04-19
  • 打赏
  • 举报
回复
#include <iostream>
#include <cstring>
using namespace std;
class Employee
{
public:
Employee(const char*);
void print();
~Employee();
private:
char *name;
};
Employee::Employee(const char * strname)
{
int len=strlen(strname);
name=new char[len+1];
strcpy(name,strname);
}
Employee::~Employee()
{
delete[] name;
}
void Employee::print()
{
cout<<name;
}


class HourlyWorker:public Employee
{
public:
HourlyWorker(const char*,double,double);
double getpay();
void print();
private:
double wage;
double hours;
};

HourlyWorker::HourlyWorker(const char* mname,double mwage,double mhours):Employee(mname),hours(mhours)
{
wage=mwage*mhours;
}
double HourlyWorker::getpay()
{
return wage;
}
void HourlyWorker::print()
{
Employee::print();
cout<<"的周薪是$"<<wage<<endl;
}

int main()
{
HourlyWorker h("王大明",40.0,10.00);
h.print();
system("pause");
return 0;
}

不要改name为const char *,
Employee::Employee(const char *Name)
{
name=Name;
}
void Employee::print()
{
cout<<name;
}
Employee::~Employee()
{
delete name;
}
这一段有问题
zhangfjj 2005-04-19
  • 打赏
  • 举报
回复
delete name;//---------- delete[] name;
plovej 2005-04-18
  • 打赏
  • 举报
回复
呵呵,不过,在编译时在 delete name 会出错哦!
plovej 2005-04-18
  • 打赏
  • 举报
回复
大哥,谢了
why25 2005-04-18
  • 打赏
  • 举报
回复
#include<iostream>
using namespace std;
class Employee
{
public:
Employee(const char*);
void print();
~Employee();
private:
const char *name;
};
Employee::Employee(const char *Name)
{
name=Name;
}
void Employee::print()
{
cout<<name;
}
Employee::~Employee()
{
delete name;
}
class HourlyWorker:public Employee
{
public:
HourlyWorker(const char*,double,double);
double getpay();
void print();
private:
double wage;
double hours;
};
HourlyWorker::HourlyWorker(const char * Name,double a,double b):Employee(Name)
{
wage=a;
hours=b;
}
void HourlyWorker::print()
{
Employee::print();
cout<<"的周薪是$"<<wage*hours<<endl;
}

int main()
{
HourlyWorker h("王大明",40.0,10.00);
h.print();
system("pause");
return 0;
}
把name的类型都改了,不知道可不可以不用改,呵呵~

64,676

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧