专栏首页WindCoderfriend关键字使用之雇员与雇主类-C++

friend关键字使用之雇员与雇主类-C++

通过 friend关键字实现的雇员类与雇主类

/*
功能:雇员与雇主类.
日期:2013-11-07
*/
#include <iostream>
#include <string>
using namespace std;
class Employer;
//雇员
class Employee
{
public:
	Employee(int aNum=0,string aName=NULL,int aPay=0,int aGrade=0,string aPosition=NULL);
	~Employee();
	 void Display(void);
	 void setEmployee(void);
	 string getName(void);
	 friend Employer;
private:
	int m_aNumber;
	string m_aName;
	int m_aPay;
	int m_aGrade;
    string m_aPosition;
};
//雇主
class Employer
{
public:
	Employer(int iNumber=0,string iName=NULL);
    ~Employer();
	void resetEmployee(Employee&);
	string getName();
    void Display(Employee &);
private:
   int m_iNumber;
   string m_iName;

};

Employee::Employee(int aNum,string aName,int aPay,int aGrade,string aPosition)
{
     m_aNumber=aNum;
	 m_aName=aName;
	 m_aPay=aPay;
	 m_aGrade=aGrade;
	 m_aPosition=aPosition;
}
Employee::~Employee()
{

}
Employer::Employer(int iNumber,string iName)
{
        m_iNumber=iNumber;
		m_iName=iName;
}
Employer::~Employer()
{

};

string Employee::getName(void)
{
	return m_aName;
}
void Employee::Display(void)
{
	 cout<<m_aNumber<<" "<<m_aName<<" "<<m_aPay<<" "<<m_aGrade<<" "<<m_aPosition;
}

void Employer::resetEmployee(Employee&obj)
{
	 cout<<"请输入新的薪水、等级和职位:";
     cin>>obj.m_aPay>>obj.m_aGrade>>obj.m_aPosition;
}

void Employer::Display(Employee &obj)
{
	cout<<m_iName<<"老板调整了"<<obj.getName()<<"的信息:";
	obj.Display();
}

int main(void)
{

	int number;
	string name;
	int pay;
	int grade;
	string position;
	int i;
	cout<<"请输入员工的编号、姓名、薪水、等级和职位:";
	cin>>number>>name>>pay>>grade>>position;
    Employee employee1(number,name,pay,grade,position);
	cout<<"请输入员工的编号、姓名、薪水、等级和职位:";
	cin>>number>>name>>pay>>grade>>position;
	Employee employee2(number,name,pay,grade,position);
	cout<<"请输入老板的编号和姓名:";
	cin>>number>>name;
    Employer employer1(number,name);
	cout<<"请输入要修改人的序号:"<<endl;
	cout<<"1."<<employee1.getName()<<endl;
    cout<<"2."<<employee2.getName()<<endl;

	cin>>i;
	if (i==1)
	{
		employer1.resetEmployee(employee1);
		employer1.Display(employee1);
	}
	else if (i==2)
	{
		employer1.resetEmployee(employee2);
		employer1.Display(employee2);
	}
	else
	{
      cout<<"输入有误";
	}
	cout<<endl;
	system("pause");
	return 0;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • k 阶斐波那契序列的第 m 项值的函数算法—C语言

    汐楓
  • Java设计模式学习笔记—组合模式

    文章最后“Java设计模式笔记示例代码整合”为本系列代码整合,所有代码均为个人手打并运行测试,不定期更新。本节内容位于其Composite包(package)中...

    汐楓
  • 学生信息排序、查找及修改

    汐楓
  • C++版 - 剑指offer 面试题34:寻找丑数(Leetcode 263.Ugly number)解题报告

    剑指offer 面试题34:寻找丑数 题目:把质数因子只包含2、3和5的正整数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含...

    Enjoy233
  • 51Nod--1018 排序

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1018

    指点
  • 病毒

    【问题描述】   有一天,小y突然发现自己的计算机感染了一种病毒!还好,小y发现这种病毒很弱,只是会把文档中的所有字母替换成其它字母,但并不改变顺序,也不会增加...

    attack
  • OpenCV图像处理专栏十四 | 基于Retinex成像原理的自动色彩均衡算法(ACE)

    这个算法是IPOL上一篇名为《Automatic Color Equalization(ACE) and its Fast Implementation》提出...

    BBuf
  • 《Automatic Color Equalization and its Fast Implementation》图像论文复现

    这篇论文实际上也是《快速ACE算法及其在图像拼接中的应用》这篇论文中的快速ACE算法,我用C++实现了,现在放出来。

    BBuf
  • P3119 [USACO15JAN]草鉴定Grass Cownoisseur 缩点 topo或最长路

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    用户2965768
  • AgileRepository - 一个基于接口的Repository快速开发库

    这是一个可以帮助你快速开发Repository的lib。有点像SpringData JPA根据方法名、注解来自动生成查询方法的功能。 对于一些简单的查询,只需...

    kklldog

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动