friend关键字使用之员工和经理类-C++
通过friend关键字实现员工和经理类
/*
功能:实现员工和经理类
作者:wind
日期:2013-11-08
*/
#include <iostream>
#include <string>
using namespace std;
int n=0,m=0;
class Manager;
//员工
class Employee
{
public:
Employee(string iName=NULL,int iAge=NULL,int iYear=0,int iNum=0);
~Employee(){};
void printOn(Employee&);
void retire();
friend Manager;
private:
string m_iName;
int m_iAge;
int m_iYear;
int m_iNum;
};
//经理
class Manager:public Employee
{
public:
Manager(string iName=NULL,int iAge=NULL,int iYear=0,int iNum=0,int ilevel = 0);
~Manager(){};
void printOn(Manager&);
void retire();
private:
int m_iLevel;
};
Employee::Employee(string iName,int iAge,int iYear,int iNum)
{
m_iName=iName;
m_iAge=iAge;
m_iYear=iYear;
m_iNum=iNum;
n++;
}
Manager::Manager(string iName,int iAge,int iYear,int iNum,int ilevel)
{
m_iName=iName;
m_iAge=iAge;
m_iYear=iYear;
m_iNum=iNum;
m_iLevel=ilevel;
}
void Employee::printOn(Employee&obj)
{
cout<<obj.m_iName<<" "<<obj.m_iAge<<" "<<obj.m_iYear<<" "<<obj.m_iNum<<endl;
}
void Employee::retire()
{
if (m_iAge>=55)
{
cout<<m_iName<<"超过了退休年龄,"<<m_iName<<"办理了退休手续"<<endl;
n--;
}
}
void Manager::printOn(Manager&obj)
{
cout<<obj.m_iName<<" "<<obj.m_iAge<<" "<<obj.m_iYear<<" "<<obj.m_iNum<<endl;
}
void Manager::retire()
{
if (m_iAge>=60)
{
cout<<m_iName<<"超过了退休年龄,"<<m_iName<<"办理了退休手续"<<endl;
m--;
}
}
int main(void)
{
string name;
int age;
int year;
int num;
int level;
int i=0;
cout<<"请输入员工的姓名、年龄、工作年限和部门号:";
cin>>name>>age>>year>>num;
Employee a(name,age,year,num);
cout<<"请输入员工的姓名、年龄、工作年限和部门号:";
cin>>name>>age>>year>>num;
Employee b(name,age,year,num);
cout<<"请输入经理的姓名、年龄、工作年限和部门号、级别:";
cin>>name>>age>>year>>num>>level;
Manager c(name,age,year,num,level);
cout<<"公司共有员工:"<<n<<"人,"<<" 经理"<<m<<"人。";
a.retire();
b.retire();
c.retire();
cout<<"公司共有员工:"<<n<<"人,"<<" 经理"<<m<<"人。";
system("pause");
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
预览
除特别注明外,本站所有文章均为 Windcoder网 原创,转载请注明出处来自: friend-guan-jian-zi-shi-yong-zhi-yuan-gong-he-jing-li-lei-c
Loading comments...

预览
暂无数据