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

时间:2016-01-06 05:48:01

标签: c++

在8年之后完成编程......没有编程(很快就开始上大学,刷新旧知识)。

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

2 个答案:

答案 0 :(得分:2)

范围是程序中的一个区域,在该区域内可以创建自动变量,并在其结束时自动销毁。示例是函数体或 for-loop 的代码块。

范围可以相互关联,外部范围中的变量可能或可能不会被内部范围中的代码访问。

例如全局范围包含所有其他范围,并且在全局范围中创建的变量可见所有其他范围(根据各种名称解析规则)。

因此范围也指可以从程序中的给定点访问的对象的可见性

范围有不同类型,每种都有自己的可见性规则,例如类范围是指成员的可见性变量成员函数类对象成员函数

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

封装是指隐藏构成对象的特定数据,并且只关注对象根据其功能界面的行为方式。在C++中,此数据隐藏主要通过将数据标记为privateprotected来实现,使其无法从结构内部访问它被定义了。

答案 1 :(得分:1)

他们 相似。

范围是关于定义对象的生命周期(松散地与"词汇"或代码方式,它们被声明的地方的边界相关),而封装是关于控制谁可以访问在那一生中的那些对象。