私人成员的作用是什么?

What is the role of private members?

本文关键字:是什么 作用 成员      更新时间:2023-10-16
#include<iostream>
class student
{
private:
int roll_no;
int standard;
public:
void input();
void display();
};

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

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

不,你的老师不会说封装,因为所谓的封装是为了安全。封装实际上存在还有其他一些原因:

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

一个示例,说明如果没有封装会发生什么情况:

假设您有一个名为Human的类,其中有一个名为age的成员是公共的。现在,如果有人想修改它,比如说,基于输入,那么他们将不得不检查输入是否不是负数或每次不是很大的数量,除非他们为它创建一个函数。现在,如果有一个成员函数提供对年龄的访问,那么它就不再是客户端代码的问题,因为字段的 setter 会处理它,因为类有责任确保其字段有效。

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

尽可能将成员变量保持私有,可以防止您从代码中不应该这样做的地方意外访问和更改它们。

它还使代码用户清楚地知道哪些变量和函数打算从类外部使用,哪些不是,从而清楚地定义了类的API。

就像每个人都知道自己的秘密并且告诉别人有点危险一样,private members不会接触其他类,因为它可能会破坏类中的某些内容,而其他类实际上不需要知道它们。

但是,人们需要沟通以满足他们的需求。我们交谈,解释我们的想法以被理解。好吧,public members是这样的,它们需要类本身与其他类进行通信。