当前位置: 首页 > news >正文

C++学习,命令空间

C++中,命名空间(Namespace)是一种封装标识符(如变量名、函数名等)的方式,它允许你定义一组在逻辑上相关的名称,以便它们可以在同一个作用域中被访问,同时避免与程序中其他部分的名称冲突。

命名空间是C++标准库广泛使用的特性之一,它帮助组织和管理大量的库代码,使得代码更加清晰和易于维护。

定义命令空间:
namespace namespace_name { // 代码声明 }

示例:

namespace myNamespace {  
    int x = 5;  
    void myFunction() {  
        // 函数体  
    }  
}

调用带有命名空间的函数或变量:
name::code; // code 可以是变量或函数

示例:

#include <iostream>    
namespace myNamespace {  
    int x = 5;  
    void myFunction() {  
        std::cout << "Hello from myFunction!" << std::endl;  
    }  
}  
  
int main() {  
    std::cout << "x = " << myNamespace::x << std::endl;  
    myNamespace::myFunction();  
    return 0;  
}

 

使用using声明:

经常访问命名空间中的某个成员,使用using声明来简化访问。using声明使得命名空间中的特定成员在当前作用域中可见,而无需每次都使用命名空间前缀。

示例:

#include <iostream>    
namespace myNamespace {  
    int x = 5;  
    void myFunction() {  
        std::cout << "Hello from myFunction!" << std::endl;  
    }  
}  
  
using myNamespace::x; // 使得x在当前作用域中可见    
int main() {  
    std::cout << "x = " << x << std::endl; // 直接使用x  
    myNamespace::myFunction(); // 仍然需要命名空间前缀来访问myFunction  
    return 0;  
}

使用using:

当前作用域中直接使用命名空间中的所有成员,示例:
#include <iostream>    
namespace myNamespace {  
    int x = 5;  
    void myFunction() {  
        std::cout << "Hello from myFunction!" << std::endl;  
    }  
}  
using namespace myNamespace; // 使得myNamespace中的所有成员在当前作用域中可见  
  
int main() {  
    std::cout << "x = " << x << std::endl; // 直接使用x  
    myFunction(); // 直接使用myFunction  
    return 0;  
}

 


http://www.mrgr.cn/news/34173.html

相关文章:

  • 【MQTT】代理服务比较RabbitMQ、Mosquitto 和 EMQX
  • Pixel Streaming入门教程:SignallingWebServer
  • Python用CEEMDAN-LSTM-VMD金融股价数据预测及SVR、AR、HAR对比可视化
  • FPGA实现PCIE3.0视频采集转SDI输出,基于XDMA+GS2971架构,提供工程源码和技术支持
  • Django博客网站上线前准备事项
  • 二叉搜索树的应用(了解补充)
  • redis常用五种数据类型的常用指令
  • 核心复现—计及需求响应的区域综合能源系统双层优化调度策略
  • 网安新声 | 黎巴嫩BP机爆炸事件带来的安全新挑战与反思
  • ubuntu安装gitlab-runner
  • 力扣647-回文子串(Java详细题解)
  • 光控资本:沪指涨0.72%,煤炭、银行板块拉升,车路云概念活跃
  • Linux: eBPF: libbpf-bootstrap-master 编译
  • 保姆级 Stable Diffusion 教程,看完这篇就够了!
  • 多语言文本 AI 情感分析 API 数据接口
  • JSP 指令标识和脚本标识的使用
  • MongoDB-索引的使用和索引类型
  • 图片和文本的一些处理方案——图片等比例缩放、背景图片调节、文本溢出
  • 【数据结构】Java的HashMap 和 HashSet 大全笔记,写算法用到的时候翻一下,百度都省了!(实践篇)
  • 【micro】糖果配色
  • nginx反向代理tomcat多实例
  • 云盘还安全么?阿里云盘出现BUG,惊现大量陌生人照片
  • FreeRTOS下UART的封装
  • 基于DeepFace深度学习模型的离线版人脸识别API接口实现(类似百度在线API接口)
  • 3dmax选择全解:高效建模的关键技巧
  • Dockerfile全面指南:从基础到进阶,掌握容器化构建的核心工具