zoukankan      html  css  js  c++  java
  • 双冒号::

    ::是运算符中等级最高的,它分为三种:全局作用域符,类作用域符,命名空间作用域符。他们都是左关联(left-associativity)。他们的作用都是为了更明确的调用自己的对象或者函数。

    全局作用

    全局作用域符号:当全局变量在局部函数中与其中某个变量重名,那么就可以用::来区分如: 
      char zhou=2; //全局变量
      void sleep() 
      { 
      char zhou=3; //局部变量 
      zhou(局部变量) = zhou(局部变量) *zhou(局部变量) ; 
      ::zhou(全局变量) =::zhou(全局变量) *zhou(局部变量); 
      }

    类作用

    作用域符号::的前面一般是类名称,后面一般是该类的成员名称,C++为了避免不同的类有名称相同的成员而采用作用域的方式进行区分
      如:A,B表示两个类,在A,B中都有成员member。那么
      A::member就表示类A中的成员member
      B::member就表示类B中的成员member

    命名空间

    "::"是作用域限定符或者称作作用域运算符或者作用域操作符(scope operator).例如命名空间
    "::"作用:namespace::name
    /*
    全局作用域符
    */
    #include<iostream>
    int sum=5050;
    int main()
    {
    int arr[3],i;
    std::cout<<"input 3 num:" <<std::endl;
    for(i=0;i<3;i++)
    std::cin>>arr[i];
    int sum=0;
    for(i=0;i<3;i++)
    sum+=arr[i];
    for(i=0;i<3;i++)
    std::cout<<setw(4)<<arr[i] <<std::endl;
    std::cout<<"局部sum="<<sum <<std::endl;
    ::sum+=sum;
    std::cout<<"全局sum=";
    std::cout<<::sum<<std::endl;//5056
    system("pause");
    return 0;//在这里::是一元作用符
    }
    /*
    类作用域符
    */
    #include<iostream>
    class Time
    {
    public:
    void setTime();
    void showTime();
    private:
    int hour;
    int minute;
    int sec;
    };
    void Time::setTime()/*类外声明部分*/
    {
    std::cin>>hour;/*std命名空间的作用域*/
    std::cin>>minute;/*std命名空间的作用域*/
    std::cin>>sec;/*std命名空间的作用域*/
    }
    /*
    类外声明
    */
    void Time::showTime()
    {
    std::cout<<hour<<":"<<minute<<":"<<sec<<std::endl;/*std命名空间的作用域*/
    }
    int main()
    {
    Time time_1;
    time_1.setTime();
    time_1.showTime();
    system("pause");
    return 0;
    }
  • 相关阅读:
    centos8 将SSSD配置为使用LDAP并要求TLS身份验证
    Centos8 搭建 kafka2.8 .net5 简单使用kafka
    .net core 3.1 ActionFilter 拦截器 偶然 OnActionExecuting 中HttpContext.Session.Id 为空字符串 的问题
    Springboot根据不同环境加载对应的配置
    VMware Workstation12 安装 Centos8.3
    .net core json配置文件小结
    springboot mybatisplus createtime和updatetime自动填充
    .net core autofac依赖注入简洁版
    .Net Core 使用 redis 存储 session
    .Net Core 接入 RocketMQ
  • 原文地址:https://www.cnblogs.com/yuesebote/p/7488083.html
Copyright © 2011-2022 走看看