#include<iostream>
class student
{
private:
int roll_no;
int standard;
public:
void input();
void display();
};
我问老师,让一些班级成员私人和一些成员公开的意义重大。他说,出于安全原因,数据成员通常是私有的。他说没有任何对象可以访问类中的私有内容,这就是为什么它们是安全的。
我的问题是: 当我们开发软件时,我们将向用户分发可执行文件。用户将无法编辑代码。我们老师在谈什么类型的安全?当我创建了整个代码时,有人可以编辑它吗?有什么需要考虑安全性?
答案 0 :(得分:8)
没有你的老师不正确的封装,因为这称为安全性。封装实际上还有其他一些原因:
一个例子,说明如果你没有封装会发生什么:
假设您有一个名为Human
的类,其中一个名为age
的成员是公开的。现在,如果有人想要根据输入进行修改,那么他们必须检查输入是否为负数或者每次都不是,除非他们为它。现在如果有一个成员函数提供了访问age的权限,那么它就不再是客户端代码的问题了,因为该字段的setter会处理它,因为类的责任是确保它的字段是有效的。
答案 1 :(得分:3)
这不会影响应用程序的用户,但老师正试图让您免于自己的错误。
在可能的情况下,将成员变量保密,可以防止您在代码中不应该执行此操作时意外访问和更改它们。
对于代码的用户来说,还清楚地知道哪些变量和函数是从类外部使用的,哪些不是,因此明确定义了类的API。
答案 2 :(得分:0)
就像每个人都知道自己的秘密一样,告诉其他人有点危险,私有成员
不会暴露给其他类,因为它可能会破坏类中的某些内容而其他类并不真正需要了解它们。
然而,人们需要沟通以满足他们的需求。我们谈谈,解释我们的想法被理解..好吧,公共成员
就像这样,他们需要课堂本身与其他班级交流。