C++学习Day01之namespace命名空间

目录

  • 一、程序及输出
    • 1.1 命名空间用途: 解决名称冲突
    • 1.2 命名空间内容
    • 1.3 命名空间必须要声明在全局作用域下
    • 1.4 命名空间可以嵌套命名空间
    • 1.5 命名空间开放,可以随时给命名空间添加新的成员
    • 1.6 命名空间可以是匿名的
    • 1.7 命名空间可以起别名
  • 二、分析与总结


一、程序及输出

1.1 命名空间用途: 解决名称冲突

game1.h

#include <iostream>
using namespace std;namespace KingGlory
{void goAtk();
}

game1.cpp

#include "game1.h"void KingGlory::goAtk()
{cout << "王者荣耀攻击实现" << endl;
}

game2.h

#include <iostream>
using namespace std;namespace LOL
{void goAtk();
}

game2.cpp

#include "game2.h"void  LOL::goAtk()
{cout << "LOL攻击实现" << endl;}

main.cpp

#include<iostream>
using namespace std;
#include "game1.h"
#include "game2.h"//1、命名空间用途: 解决名称冲突
void test01()
{KingGlory::goAtk();LOL::goAtk();
}
int main(){test01();system("pause");return EXIT_SUCCESS;
}

输出:
在这里插入图片描述

1.2 命名空间内容

namespace A
{int m_A;void func();struct Person{};class Animal{};
}

编译器没有报错提示。

1.3 命名空间必须要声明在全局作用域下

在这里插入图片描述

1.4 命名空间可以嵌套命名空间

#include<iostream>
using namespace std;
namespace B
{int m_A = 10;namespace C{int m_A = 20;}
}
void test03()
{cout << "B空间下的m_A = " << B::m_A << endl;cout << "C空间下的m_A = " << B::C::m_A << endl;
}
int main(){test03();system("pause");return EXIT_SUCCESS;
}

输出:
在这里插入图片描述

1.5 命名空间开放,可以随时给命名空间添加新的成员

#include<iostream>
using namespace std;
namespace B
{int m_A = 10;namespace C{int m_A = 20;}
}
namespace B
{int m_B = 100;
}
void test04()
{cout << "B空间下的m_A = " << B::m_A << endl;cout << "B空间下的m_B = " << B::m_B << endl;
}
int main(){test04();system("pause");return EXIT_SUCCESS;
}

输出:
在这里插入图片描述

1.6 命名空间可以是匿名的

#include<iostream>
using namespace std;
namespace
{int m_C = 1000;int m_D = 2000; //当写的命名空间的匿名的,相当于写了  static int m_C = 1000; static int m_D = 2000;
}void test05()
{cout << "m_C = " << m_C   << endl;cout << "m_D = " << ::m_D << endl;
}
int main(){test05();system("pause");return EXIT_SUCCESS;
}

输出:
在这里插入图片描述

1.7 命名空间可以起别名

#include<iostream>
using namespace std;
namespace veryLongName
{int m_E = 10000;void func(){cout << "aaa" << endl;}
}void test06()
{namespace veryShortName = veryLongName;cout << veryShortName::m_E << endl;cout << veryLongName::m_E << endl;veryLongName::func();
}
int main(){test06();system("pause");return EXIT_SUCCESS;
}

输出:
在这里插入图片描述


二、分析与总结

1、命名空间用途: 解决名称冲突
2、命名空间内容:可以放 变量、函数、结构体、类…
3、命名空间 必须要声明在全局作用域下
4、命名空间可以嵌套命名空间
5、命名空间是开放的,可以随时给命名空间添加新的成员
6、命名空间可以是匿名的
7、命名空间可以起别名

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/448674.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity 图片不改变比例适配屏幕

Unity 图片不改变比例适配屏幕 前言项目场景布置代码编写添加并设置脚本效果 前言 遇到一个要让图片适应相机大小&#xff0c;填满屏幕&#xff0c;但不改变图片比例的需求&#xff0c;记录一下。 项目 场景布置 代码编写 创建AdaptiveImageBackground脚本 using System.C…

九、Qt图表使用

一、QCharts概述 Qt图表提供了&#xff1a;折线图、样条曲线图、面积图、散点图、条形图、饼图、方块胡须图、蜡烛图、极坐标图。1、QChart介绍 Qt Charts基于Qt的QGraphics View架构&#xff0c;其核心组件是QChartView和QChartQChartView是显示图标的视图&#xff0c;基类为…

JSP和JSTL板块:第三节 JSP四大域对象 来自【汤米尼克的JAVAEE全套教程专栏】

JSP和JSTL板块&#xff1a;第三节 JSP四大域对象 一、page范围二、request范围三、session范围四、application范围 在服务器和客户端之间、各个网页之间、哪怕同一个网页之内&#xff0c;总是需要传递各种参数值&#xff0c;这时JSP的内置对象就是传递这些参数的载具。内置对象…

时间序列预测——GRU模型

时间序列预测——GRU模型 在深度学习领域&#xff0c;循环神经网络&#xff08;RNN&#xff09;是处理时间序列数据的一种常见选择。上期已介绍了LSTM的单步和多步预测。本文将深入介绍一种LSTM变体——门控循环单元&#xff08;GRU&#xff09;模型&#xff0c;包括其理论基础…

NSFCdownload 国自然结题报告下载速度慢问题修复

最近有人反应国自然结题报告下载速度慢&#xff0c;大部分人出的问题都是在软件启动的时候&#xff0c;卡在那一直不动&#xff0c;卡的时间过长&#xff0c;以后就提示下载失败了。如下图所示&#xff0c;光标在这里&#xff0c;一直不往下走。 小编也是收到这个反馈以后&…

如何使用本地私有NuGet服务器

写在前面 上一篇介绍了如何在本地搭建一个NuGet服务器&#xff0c; 本文将介绍如何使用本地私有NuGet服务器。 操作步骤 1.新建一个.Net类库项目 2.打包类库 操作后会生成一个.nupkg文件&#xff0c;当然也可以用dotnet pack命令来执行打包。 3.推送至本地NuGet服务器 打开命…

LeetCode15. 三数之和

15. 三数之和 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 **注意&#xff1a;**答案中不可以包含重复…

指针的学习1

目录 什么是指针&#xff1f; 野指针 造成野指针的原因&#xff1a; 如何避免野指针&#xff1f; 内存和指针 如何理解编址&#xff1f; 指针变量和地址 取地址操作符& 指针变量和解引用操作符 指针变量 如何拆解指针类型&#xff1f; 指针变量的大小 指针变量…

LeetCode.189. 轮转数组

题目 题目链接 分析 首先能想到的就是可以用一个新数组&#xff0c;先保存原数组的后 k 个元素&#xff0c;再保存原数组的前 n−k 个元素。但题目要求不使用额外的数组空间&#xff0c;那么就需要在原数组上做操作。 我们可以先把整个数组翻转一下&#xff0c;这样后半段元…

蓝桥杯---煤球数目

有一堆煤球,堆成三角棱锥形。具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形), 如果一共有100层,共有多少个煤球? 请填表示煤球总数目的数字. 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字. 代码 pu…

Maven高级知识——分模块开发、继承与聚合

目录 一、分模块设计与开发 1.1 不分模块的问题 1.2 分模块设计 二、 继承与聚合 2.1 继承 2.1.1 继承关系 2.1.2 版本锁定 2.1.2.1 场景 2.1.2.2 介绍 2.1.2.3 实现 2.1.2.4 属性配置 2.2 聚合 2.2.1 介绍 2.2.2 实现 2.3 继承与聚合对比 三、Maven打包方式&#xff08;jar、w…

2023 OpenHarmony 年度运营报告

汇聚 70 家企业 6700名贡献者力量&#xff0c; OpenHarmony 已成为下一代智能终端操作系统根社区&#xff1b; 我们在成长,OpenHarmony 项目群成员单位增至 35 家&#xff1b; 2023 年持续迭代更新 6 个版本及 OpenHarmony4.0 重点特性简介……