私人会员的角色是什么?

时间:2018-02-02 11:32:31

标签: c++ class security

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

我问老师,让一些班级成员私人和一些成员公开的意义重大。他说,出于安全原因,数据成员通常是私有的。他说没有任何对象可以访问类中的私有内容,这就是为什么它们是安全的。

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

3 个答案:

答案 0 :(得分:8)

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

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

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

答案 1 :(得分:3)

这不会影响应用程序的用户,但老师正试图让您免于自己的错误。

在可能的情况下,将成员变量保密,可以防止您在代码中不应该执行此操作时意外访问和更改它们。

对于代码的用户来说,还清楚地知道哪些变量和函数是从类外部使用的,哪些不是,因此明确定义了类的API。

答案 2 :(得分:0)

就像每个人都知道自己的秘密一样,告诉其他人有点危险,私有成员不会暴露给其他类,因为它可能会破坏类中的某些内容而其他类并不真正需要了解它们。

&#xA;&#xA;

然而,人们需要沟通以满足他们的需求。我们谈谈,解释我们的想法被理解..好吧,公共成员就像这样,他们需要课堂本身与其他班级交流。

&#xA;