私人会员的角色是什么?

xsc*_*rp7 2 c++ security class

#include<iostream>
class student
{
    private:
            int roll_no;
            int standard;
    public:
            void input();
            void display();
};
Run Code Online (Sandbox Code Playgroud)

我向老师询问了让一些班级成员私下和一些成员公开的重要性.他说,出于安全原因,数据成员通常是私有的.他说没有对象可以访问类中的私有东西,这就是为什么它们是安全的.

我的问题是:当我们开发软件时,我们将向用户分发可执行文件.用户将无法编辑代码.我们老师在谈什么类型的安全?当我创建了整个代码时,有人可以编辑它吗?有什么需要考虑安全性?

Arn*_*rah 8

没有你的老师不正确的封装,因为这称为安全性.封装实际上还有其他一些原因:

  1. 创建更好的代码可维护性.当所有属性都是私有的并且封装时,代码编写者很容易通过更改方法来维护程序.
  2. 有一个受控环境.封装允许用户以受控方式通过对象使用给定对象.如果封装不存在,客户端代码可以以他们想要的任何方式使用类的成员,而成员函数将此限制为特定行为.
  3. 隐藏复杂性:隐藏与用户无关的复杂性.有时,某些属性和方法仅供内部使用,用户无需了解这些属性和方法.这使用户可以轻松使用该对象.

举例说明如果没有封装会发生什么:

假设您有一个名为的类Human,其成员名为agepublic.现在,如果有人想要修改它,比如说,基于输入,那么他们必须检查输入是否每次都是负数或不是很大,除非他们为它做了一个函数.现在如果有一个成员函数提供了访问age的权限,那么它就不再是客户端代码的问题了,因为该字段的setter会处理它,因为类的责任是确保它的字段是有效的.