范围和封装之间的区别是什么?(C++)

What is the difference between scope and encapsulation? (C++)

本文关键字:C++ 是什么 区别 封装 之间 范围      更新时间:2023-10-16

在经历了8年的。。。而不是编程(很快就要上大学,复习旧知识)。

范围和封装之间的区别是什么?他们似乎很相似。

作用域是程序中的一个区域,在该区域中可以创建自动变量,并在结束时自动销毁。例如,循环的的函数体或代码块。

作用域可以相互封闭,外部范围中的变量可以由内部内的代码访问,也可以不访问。

例如,全局范围包含所有其他作用域,并且在全球范围用域都可见(根据各种名称解析规则)。

因此,scope还指可以从程序中的给定点访问的对象的可见性

有不同类型的作用域,每个作用域都有自己的可见性规则,例如类作用域是指成员变量的可见性,类函数类别对象成员函数的可见性。

有关更详细的定义,请参阅http://en.cppreference.com/w/cpp/language/scope

封装是指隐藏组成对象的特定数据,并仅关注对象根据其函数接口的行为。在C++中,这种数据隐藏主要是通过将数据标记为privateprotected来实现的,从而使其无法从定义它的结构外部访问。

它们相似。

作用域是关于定义对象的生存期(与声明对象的地方的"词法"或代码边界松散相关),而封装则是关于控制谁可以在该生存期内访问这些对象。