c++中的作用域 四类(函数原型作用域,局部作用域,类作用域,命名空间作用域)

1.函数原型作用域:

此作用域为c++程序中最小的作用域,生存周期最短。

例:int func(int i) i为参数,作用域类型为函数原型类型。

2.局部作用域:与C语言类似;

函数体或某一个模块中的变量,其作用域从声明开始,一直到声明所在的块结束为止。

3.类的作用域

类中的数据和函数分为公有类(public),保护类(protected),私有类(private),

类公有派生类,保护派生类,私有派生类

类中的成员 在public中 ,可以在其他地方直接使用  使用方法:对象.公用类成员(对象::公用类成员)

而其他的需要借助公有类函数调用 ,但是在类中可以直接调用 。

例: class x的对象X的成员m具有类作用域,对m的访问有三种

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

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

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

4.命名空间作用域

命名空间的语法为

namespace 命名空间名{

各种声明(class的声明,函数的声明,变量的声明,常量的声明………)}

如何引用呢? 命名空间名::标识符名

例:namespace WA{    class A;    }        引用: namespace WA::A;    using namespace WA;  using WA::A;

命名空间分为三类:1.显示   在某某命名空间中

                                    2.全局命名空间        在using   namespace std;下进行命名,也可以叫做全局变量 为static 储存类型

                                    3.匿名命名空间              例:namespace{   class A;  }

  • 11
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
C++ ,如果想要在一个源文件使用另一个源文件定义的函数,可以使用头文件。头文件可以包含函数声明和函数定义,以便在其他源文件使用。 当头文件包含了其他作用域定义的函数时,需要使用作用域解析运算符 "::" 来指定函数作用域。例如,在头文件包含了命名空间函数时,可以使用作用域解析运算符来指定函数作用域,如下所示: ```c++ // header.h namespace ns { void func(); } // source1.cpp #include "header.h" void ns::func() { // 函数定义 } // source2.cpp #include "header.h" int main() { ns::func(); // 调用命名空间函数 return 0; } ``` 在上面的代码,头文件 "header.h" 包含了命名空间 ns 函数 func 的声明。在源文件 "source1.cpp" 定义了函数 func,并使用作用域解析运算符 "::" 来指定函数命名空间。在源文件 "source2.cpp" ,通过包含头文件 "header.h" 来使用命名空间函数 func。 需要注意的是,在使用头文件时,要确保头文件的代码只被编译一次。为了避免重复编译,可以使用预编译指令 "#ifndef" 和 "#define" 来防止头文件的重复包含,如下所示: ```c++ // header.h #ifndef HEADER_H #define HEADER_H namespace ns { void func(); } #endif ``` 在上面的代码,使用预编译指令 "#ifndef" 和 "#define" 来防止头文件的重复包含。如果头文件已经被包含,则不会再次包含头文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值