范围和封装之间的区别是什么?(C++)
What is the difference between scope and encapsulation? (C++)
在经历了8年的。。。而不是编程(很快就要上大学,复习旧知识)。
范围和封装之间的区别是什么?他们似乎很相似。
作用域是程序中的一个区域,在该区域中可以创建自动变量,并在结束时自动销毁。例如,循环的的函数体或代码块。
作用域可以相互封闭,外部范围中的变量可以由内部内的代码访问,也可以不访问。
例如,全局范围包含所有其他作用域,并且在全球范围用域都可见(根据各种名称解析规则)。
因此,scope还指可以从程序中的给定点访问的对象的可见性。
有不同类型的作用域,每个作用域都有自己的可见性规则,例如类作用域是指成员变量的可见性,类函数对类别对象成员函数的可见性。
有关更详细的定义,请参阅http://en.cppreference.com/w/cpp/language/scope
封装是指隐藏组成对象的特定数据,并仅关注对象根据其函数接口的行为。在C++
中,这种数据隐藏主要是通过将数据标记为private
或protected
来实现的,从而使其无法从定义它的结构外部访问。
它们相似。
作用域是关于定义对象的生存期(与声明对象的地方的"词法"或代码边界松散相关),而封装则是关于控制谁可以在该生存期内访问这些对象。
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- C++避免重复声明的语法是什么
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- C++从另一个类访问公共静态向量的正确方法是什么
- "throw expression code" 1e7 >返回 d 是什么?投掷标准::overflow_error( "too big" ) : d;意味 着?
- C++中名称篡改的目的是什么
- 在 c++ 中拥有一组结构的正确方法是什么?
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值
- 是什么阻止DOMTimerCoordinator::NextID进入无休止的循环
- 派生类销毁的最佳实践是什么
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 通过JNI传递数据数组的最快方法是什么
- "using namespace std;"在C++的作用是什么?
- 在两台机器之间进行时间戳的最佳c++chrono函数是什么
- 文件系统:复制功能的速度秘诀是什么
- 用常见虚拟函数实现的任意组合来实现派生类的正确方法是什么
- 使用QQuickFramebufferObject时同步数据的最佳方式是什么
- 是什么原因导致它无法编译?它是声明签名还是在函数本身的实现中
- 使用不同的CRT将新的C++代码与旧的(二进制)组件隔离开来的最佳方法是什么