菜鸟学习c++—实现系统权限管理功能(类的public和private应用)

面向对象语言中类的3大特征之一—封装 的意义在于实现隐藏类的具体细节。但是为什么要把类的属性设置为private,而把类的成员函数置为public呢?

我的理解是为了提高安全性,防止用户随意修改类对象的属性值。

假设我们有名为user的类,如下所示:

#include <string>

using namespace std;

class user

{

public:

    user()=default;                                //默认构造函数

    user(string s,string p,int r):            //构造函数1

    id(s),password(p),root(r){}

    user(string s,string p):                 //构造函数2        方法

    id(s),password(p){}

    void set_root(int i);                      //设置权限

    void reset_password();               //重置密码

    int get_root();                           //返回权限

    string get_password();          //返回密码

    void grant(user&u);             //授权函数(如管理员给用户授权)

private:

    string id;                           //使用者id

    string password;             //密码                     属性

    int root;                          //权限

};

假设我们有user类对象student,如果我们把属性:id,password,root全置为public,那么用户可轻易通过student.root=i随意修改其权限属性,但是我们把属性置为私有,对象就不能直接访问类的私有成员。只有类的公有成员能直接访问私有成员,而类对象只能通过其共有成员间接
  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值