C++语言程序设计 清华大学郑莉 文件作用域 作用域与可见性 ● 不在前述各个作用域中出现的声明, 具有文件作用域,这样声明的标识符 的作用域开始于声明点,结束于文件 尾。 6
C++语言程序设计 清华大学 郑莉 6 文件作用域 ⚫ 不在前述各个作用域中出现的声明, 具有文件作用域,这样声明的标识符 的作用域开始于声明点,结束于文件 尾。 作 用 域 与 可 见 性
C++语言程序设计 清华大学郑莉 可见性 可见性是从对标识符的引用的角度来谈 作用域与可见性 的概念 可见性表示从内层作用域向外层作用域 “看”时能看见什么。 如果标识在某处可见,则就可以在该处 引用此标识符 文件作用域 类作用域 块作用域
C++语言程序设计 清华大学 郑莉 7 可见性 ⚫ 可见性是从对标识符的引用的角度来谈 的概念 ⚫ 可见性表示从内层作用域向外层作用域 “看”时能看见什么。 ⚫ 如果标识在某处可见,则就可以在该处 引用此标识符。 块作用域 类作用域 文件作用域 作 用 域 与 可 见 性
C++语言程序设计 清华大学郑莉 可见性 作 ● 标识符应声明在先,引用在后。 如果某个标识符在外层中声明,且在内层中 与可见 没有同一标识符的声明,则该标识符在内层 可见。 。对于两个嵌套的作用域,如果在内层作用域 性 内声明了与外层作用域中同名的标识符,则 外层作用域的标识符在内层不可见。 d
C++语言程序设计 清华大学 郑莉 8 可见性 ⚫ 标识符应声明在先,引用在后。 ⚫ 如果某个标识符在外层中声明,且在内层中 没有同一标识符的声明,则该标识符在内层 可见。 ⚫ 对于两个嵌套的作用域,如果在内层作用域 内声明了与外层作用域中同名的标识符,则 外层作用域的标识符在内层不可见。 作 用 域 与 可 见 性
C++语言程序设计 清华大学郑莉 同一作用域中的同名标识符 作用域与可见性 ● 在同一作用域内的对象名、函数名、 枚举常量名会隐藏同名的类名或枚举 类型名。 重载的函数可以有相同的函数名
C++语言程序设计 清华大学 郑莉 9 同一作用域中的同名标识符 ⚫ 在同一作用域内的对象名、函数名、 枚举常量名会隐藏同名的类名或枚举 类型名。 ⚫ 重载的函数可以有相同的函数名。 作 用 域 与 可 见 性
C++语言程序设计 清华大学郑莉 例5.1 作 #include<iostream> using namespace std; inti;l文件作用域 与 int main() {i=5: 可见性 {inti,/块作用域 i=7; cout<<"i="<<i<end业;/输出7 cout<<"j="<<i; 1/输出5 return 0; ★并 10
C++语言程序设计 清华大学 郑莉 10 #include<iostream> using namespace std; int i; //文件作用域 int main() { i=5; { int i; //块作用域 i=7; cout<<"i="<<i<<endl; //输出7 } cout<<"i="<<i; //输出5 return 0; } 作 用 域 与 可 见 性 例 5.1