6.13 員工的真實年齡
阿新 • • 發佈:2018-11-15
以面向物件的概念,建立如下一個系統
每一名員工都有一個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; } };
本題也可以使用友元解決,請嘗試