码迷,mamicode.com
首页 > 其他好文 > 详细

作用域总结

时间:2019-09-28 23:37:59      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:命名   include   开始   main   标识   正是   引用   正文   name   

作用域

? 作用域是是一个标识符在程序正文中有效的区域。c++中标识符的作用域有<函数原型作用域><局部作用域><类作用域><命名空间作用域>

1.函数原型作用域

? 在函数原型声明时形式参数的作用范围就是函数原型作用域。

例子:double area(double radius);

2.局部作用域

? 1.函数形参列表中形参的作用域,从形参列表中的声明处开始,到整个函数体结束之处为止。

? 2.函数体内声明的变量其作用域从声明处开始,一直到声明所在的块结束的大括号为止。

? 3.具有局部作用域的变量也称为局部变量。

3.类作用域
类X的成员m具有类作用域

? 1.如果在X的成员函数中没有声明同名的局部作用域标识符,那么在该函数内可以直接访问成员m。

? 2.通过表达式x.m或者X::m。这正是程序中访问对象成员的最基本方法。

? 3.通过ptr->m这样的表达式,其中ptr为指向X类的一个对象的指针。

4.命名空间作用域

例子1:

namespace SomeNS

{

? class SomeClass{.....};

}

例子2:

SomeNS::SomeClass obj1;

例子3:

using 命名空间名::标识符名;

using namespace 命名空间标识符;

例子4:

namespace OuterNS

{

? namespace InnerNs{

class SomeClass{.......};

}

}

例子5:

namespace{

匿名命名空间内的各种声明(函数声明、类声明、.......)

}

程序实例:

include < iostream>

using namespace std;
int i; //在全局命名空间中的全局变量
namespace Ns{
int j; //在Ns命名空间中的全局变量
};
int main() {
i=5; //为全局变量i赋值
Ns::j=6; //为全局变量j赋值
{ //子块1
using namespace Ns;//使得在当前块中可以直接引用Ns命名空间的标识符
int i; //局部变量,局部作用域
i= 7;
cout<<”i="<<i<<endl;//输出7
cout<<”j="<<j<<endl;//输出6
}
cout<<”i="<<i<<endl;//输出5
return 0;
}

运行结果:

i=7
j=6
i=5

具有命名空间作用域的变量也称为全局变量。

作用域总结

标签:命名   include   开始   main   标识   正是   引用   正文   name   

原文地址:https://www.cnblogs.com/ycldbk/p/11605242.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!