zoukankan      html  css  js  c++  java
  • 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;
    		}
    };
    

    本题也可以使用友元解决,请尝试

  • 相关阅读:
    括号序列
    单向TSP
    Black Box
    震惊!!!某初中生竟30min一蓝两紫一黑!!!
    荷马史诗
    SUFEQPRE
    UVA劲歌金曲
    UVA城市里的间谍
    饼图----插件
    折线图-----插件
  • 原文地址:https://www.cnblogs.com/hzshisan/p/12571115.html
Copyright © 2011-2022 走看看