永发信息网

很简单的c++改错

答案:2  悬赏:80  手机版
解决时间 2021-05-07 00:51

#ifndef WORKER_CLASS
#define WORKER_CLASS
class Worker
{
private:
int id;
string name;
int age;
Gender gender;
double salary;
friend bool comBySalary(const Worker &a,const Worker &b);
public:
Worker(int ID,char*nam,int ag,Gender gen,double sal):
id(ID),name(nam),age(ag),gender(gen),salary(sal)
{}
void print()
{
cout<<id<<"\t"<<name<<"\t"<<age<<"\t";
if(gender==female)
cout<<"female"<<"\t";
else
cout<<"male"<<"\t";
cout<<salary<<"\t";
}

};
#endif WORKER_CLASS

#include<iostream>

#include<string>
#include<algorithm>
using namespace std;
enum Gender{female,male};
#include"Worker.h"
bool comBySalary(const Worker &a,const Worker &b)
{
return a.salary<b.salary;
}
void main()
{
Worker s1(200901,"lily",23,female,2008),
s2(200902,"Tom",24,male,2009),
s3(200903,"lucy",25,female,2010);
Worker a[]={s1,s2,s3};
int n=sizeof(a)/sizeof(*a);
Worker *p,*q;
q=min_element(a,a+n,comBySalary);
*q.print();
p=max_element(a,a+n,comBySalary);
*p.print();

}

最佳答案

这是两个文件. 一个Worker.h头文件. 一个.cpp文件.


从#include<iostream>开始都是.cpp文件的内容.


该文件的main函数中.用指针访问类成员函数. 是用-> 不是用*.


修改部分的代码如下:


void main()
{
Worker s1(200901,"lily",23,female,2008),
s2(200902,"Tom",24,male,2009),
s3(200903,"lucy",25,female,2010);
Worker a[]={s1,s2,s3};
int n=sizeof(a)/sizeof(*a);
Worker *p,*q;
q=min_element(a,a+n,comBySalary);
q->print(); //
p=max_element(a,a+n,comBySalary);
p->print(); //

}

全部回答

好长.........头晕~~~~~~~~~~~~~~~~

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
风吹乱了我秀发的句子,春天那个坏小子 一路上
HP CQ45-203TX能否安装WIN7???
关于爱情,我该怎么面对这一切?
我家电脑是XP的,为什么安装了Uxtheme破解版
姐妹纯手工水饺在什么地方啊,我要过去处理事
关于钢琴音符问题。有图
谁给我个烈火如歌第三部网址?
表达同学情谊的古诗歌,赞美同学情谊的诗句
QQ自由幻想获过什么奖?
Q吧用户为何点不亮?
为什么我还没有来月经
月经来的头两天男友射在体内会怀孕吗
傍晚咳嗽是怎么回事?应该怎么办??
朋友生日,送什么礼物好?(送girl的,然后我
找些好听的歌 最好新歌 华语
推荐资讯
马鞍山近期有没有举办穿越火线赛事的网吧??
为什么我的电脑下载不了QQ2009?
东莞常平离章木头多远`
贴片led比普通冒子led灯,谁亮度高些?谁耐用些
怎么获的QQ会员兑换券
用啥买QQ秀
2010上半年山东计算机三级考试报名时间是什么
他为我说的话哭了。
什么最像人
中年人,头发白的原因是什么?
黑帮大佬医生梦主角叫什么名字
关于志愿者的问题?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?