标签:context 文件 ++ end include 名字空间 void 变量 程序
C++程序中每个名字都必须指向唯一的一个实体(如对象、函数、类型或模板)。但是我们都知道,在一个程序中,经常出现相同的名字指向不同的实体。这个实现的机制就是编译器根据上下文(Context)区分出名字的不同含义。而用来区分名字含义的一般上下文就是域(scope)。C++支持三种形式的域:局部域(local scope),名字空间域(namespace scope)和类域。
比如在一个cpp文件里,有一个全局变量,相对的里面的函数就是这个全局域的嵌套域,这个全局变量在所有嵌套域可见。
又如class里,又有一个class,那么外层的变量在里面的class也是可见的:
#include <iostream>
using namespace std;
class c1
{
public:
int a;
void foo();
class c2
{
public:
int a;
void foo();
} b;
};
void c1::foo()
{
a = 1;
}
void c1::c2::foo()
{
a = 2;
}
int main()
{
class c1 f;
f.foo();
f.b.foo();
cout << f.a << endl;
cout << f.b.a << endl;
return 0;
}
标签:context 文件 ++ end include 名字空间 void 变量 程序
原文地址:https://www.cnblogs.com/drunknbeard/p/9418224.html