1. 程式人生 > >6.13 員工的真實年齡

6.13 員工的真實年齡

以面向物件的概念,建立如下一個系統
每一名員工都有一個private許可權的年齡,能通過GetAge()詢問其年齡,GetAge()的回答加密規則為:age+5
但管理員Admin能夠獲知每個員工的真實年齡。主函式和Employee類的設計如下,請寫出管理員Admin類如何獲知員工的真實年齡的思路,並給出相應的程式碼

後置程式碼如下

int main()
{	Employee a(65), b(19), c(43), d(80);
	cout<<a.GetAge()<<","<<b.GetAge()<<","<<c.GetAge()<<","<<d.GetAge()<<endl;//輸出加密後的年齡
	Admin m;
	cout<<m.GetAge(a)<<","<< m.GetAge(b)<<","<< m.GetAge(c)<<","<< m.GetAge(d)<<endl;//輸出真實年齡
	return 0;
}

期待的輸出:
70,24,48,85
65,19,43,80

解決思路:兩個類 一個Employee 一個Admin
如何讓Admin的成員函式可以訪問Employee

#include <iostream>
using namespace std;
class Employee
{
	private:
		int age;
	public:
		Employee(int a)
		{
			age=a;
		}
		int GetAge()
		{
			return age+5;
		}
};
class Admin
{
	public:
		int GetAge(Employee &a)
		{
			return a.GetAge()-5;
		}
};

本題也可以使用友元解決,請嘗試