C++笔记:命名空间

news2024/10/5 15:25:52

引入:

平常,我们在进行C++编写时,一般我们都会默认在开始去写这样的代码:

#include<iostream>//包含头文件

using namespace std;//展开命名空间

这里就出现了与C语言不同的地方:这里的命名空间就是C++对于C语言进行优化的一个地方。

请看下面的代码来体会这一优化:

#include<stdlib.h>
#include<stdio.h>

int srand = 10;

int main()
{
	printf("%d ", srand);
	return 0;
}

这里我们运行会发现这样的错误:

错误原因:

这里会出现这样的错误是应为我们头文件里面有一个叫srand 的函数,这会导致命名重复的问题。当我们在平时写一些比较小的项目时可以轻易避免命名重复问题,但是当代码量上来问题后就会显现。为此我们的C++祖师爷本贾尼·斯特劳斯特卢普就创建了命名空间这一新的概念。

错误去除:

这里我们可以定义自己的命名空间来定义我们需要的名称:

#include<stdlib.h>
#include<stdio.h>

namespace laowang //定义一个叫“laowang”的命名空间
{
int srand = 10;
}


int main()
{
	printf("%d ", laowang::srand);//"::"是对命名空间内变量引用的符号
	return 0;
}

这时我们会发现报错就没有了。

理解:

这里的命名空间就相当于一个单独且封闭的空间,当我们不将其打开或将其数据取出,我们就无法访问内部的数据。这里的laowang::就是取出其内部数据,而我们的using namespace laowang;就是将该命名空间打开。

#include<stdio.h>

namespace laowang //定义一个叫“laowang”的命名空间
{
int srand = 10;
}
using namespace laowang;//打开命名空间,删去将会报错

int main()
{
	printf("%d ", srand);
	//在没有"::"对命名空间内变量引用的符号时,需要打开命名空间对其内部数据进行访问
	return 0;
}

总结:

所以我们在写C++时写的“using namesp std就是打开一个叫"std”的命名空间,这是C++的标准命名空间,我们打开它来用其内部的函数等数据。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习| DiceLoss解决图像数据不平衡问题

图像数据不平衡问题 图像数据不平衡&#xff1a;在进行图像分割时&#xff0c;二分类问题中&#xff0c;背景过大&#xff0c;前景过小&#xff1b;多分类问题中&#xff0c;某一类别的物体体积过小。在很多图像数据的时候都会遇到这个情况&#xff0c;尤其是在医学图像处理的…

如何快速掌握数字化运维方法,构建数字化运维体系?

⛳️ 写在前面参与规则&#xff01;&#xff01;&#xff01; ✅参与方式&#xff1a;关注博主、点赞、收藏、评论&#xff0c;任意评论&#xff08;每人最多评论三次&#xff09; ⛳️本次送书1~4本【取决于阅读量&#xff0c;阅读量越多&#xff0c;送的越多】 主要内容读者…

操作符:左移(<<)右移(>>)

在介绍移位操作符前&#xff0c;我们先介绍一下原码反码和补码 这里要讲的左移和右移牵扯到原码补码和反码&#xff0c; 原码即这个整数转化为2进制时的一串&#xff0c; 正整数的原码、反码、补码相同&#xff0c; 10&#xff08;int类型&#xff09;的原码&#xff1a;00…

day4 linux上部署第一个nest项目(java转ts全栈/3R教室)

背景&#xff1a;上一篇吧nest-vben-admin项目&#xff0c;再开发环境上跑通了&#xff0c;并且build出来了dist文件&#xff0c;接下来再部署到linux试试吧 dist文件夹是干嘛的&#xff1f; 一个pnpn install 直接生成了两个dist文件夹&#xff0c;前端admin项目一个&#xf…

黑马鸿蒙笔记 3

目录 11.ArkUI组件-Column和Row 12.ArkUI组件-循环控制 13.ArkUI组件-List 14.ArkUI组件-自定义组件 15.ArkUI组件-状态管理State装饰器 16.ArkUI组件-状态管理-任务统计案例 17.ArkUI组件-状态管理-PropLinkProvideConsume 11.ArkUI组件-Column和Row Colum和Row的交叉…

力扣-python-故障键盘

题解&#xff1a; from collections import dequeclass Solution:def finalString(self, s: str) -> str:# 创建一个双端队列用于存储字符q deque()# 定义一个标志位&#xff0c;用于标记当前字符应该添加到队列的哪一端head False# 遍历输入的字符串s的每一个字符for ch…

k8s安装traefik作为ingress

一、先来介绍下Ingress Ingress 这个东西是 1.2 后才出现的&#xff0c;通过 Ingress 用户可以实现使用 nginx 等开源的反向代理负载均衡器实现对外暴露服务&#xff0c;以下详细说一下 Ingress&#xff0c;毕竟 traefik 用的就是 Ingress 使用 Ingress 时一般会有三个组件: …

从0到1利用express搭建后端服务

目录 1 架构的选择2 环境搭建3 安装express4 创建启动文件5 express的核心功能6 加入日志记录功能7 日志记录的好处本节代码总结 不知不觉学习低代码已经进入第四个年头了&#xff0c;既然低代码很好&#xff0c;为什么突然又自己架构起后端了呢&#xff1f;我有一句话叫低代码…

大模型 web ui 界面 text-generation-webui

目录 前言 web ui ValueError: When localhost is not accessible 前言 使用 text-generation-webui 生成大模型界面&#xff0c;这个是专门用于文本对话生成的 web ui 界面 GitHub - oobabooga/text-generation-webui: A Gradio web UI for Large Language Models. Suppo…

【语言信号增强算法研究-1】维纳滤波(Wiener Filter)

1 语音增强方法分类 2 维纳滤波的局限性 对于非线性和非高斯噪声的处理效果不佳&#xff1b; 对于信号和噪声的统计特性要求比较高&#xff0c;需要准确地了解信号和噪声的分布规律&#xff08;说明自适应很差&#xff09;&#xff1b; 在处理复杂信号时&#xff0c;需要进行多…

【Functional Affordances】如何确认可抓取的区域?(前传)

文章目录 1. 【Meta AI】Emerging Properties in Self-Supervised Vision Transformers2. 【Meta AI】DINOv2: Learning Robust Visual Features without Supervision3. 【NeurIPS 2023】Diffusion Hyperfeatures: Searching Through Time and Space for Semantic Corresponden…

ElasticSearch理论指导

引子 本文致力于ElasticSearch理论体系构建&#xff0c;从基本概念和术语讲起&#xff0c;具体阐述了倒排索引和TransLog&#xff0c;接着讲了ElasticSearch的增删改查的流程和原理&#xff0c;最后讲了讲集群的选举和脑裂问题。 前言 大碗宽面-Kafka一本道万事通&#xff0…

蓝桥杯真题:成绩统计

这题思路简单&#xff0c;但是输出结果的位置容易出错&#xff0c;题目要求四舍五入&#xff0c;所以要用Math.round&#xff08;&#xff09;的方法

瑞吉外卖实战学习--10、完成新增菜品分类

完成新增菜品分类 前言1、前期准备定义实体类和实体对象 2、创建修改的接口 前言 1、前期准备 定义实体类和实体对象 package com.example.ruiji_demo.entity;import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; …

kubernetes-Pod基于污点、容忍度、亲和性的多种调度策略(二)

Pod调度策略 一.污点-Taint二.容忍度-Tolerations三.Pod常见状态和重启策略1.Pod常见状态2.Pod的重启策略2.1测试Always重启策略2.2测试Never重启策略2.3测试OnFailure重启策略&#xff08;生产环境中常用&#xff09; 一.污点-Taint 在 Kubernetes 中&#xff0c;污点&#x…

稻盛和夫|普通人如何才能取得非凡成就?

哈喽,你好啊,我是雷工! 稻盛和夫老先生曾经回答过这么一个问题: 资质平庸的普通人如何才能取得非凡的成就? 稻盛和夫认为:人生成就=能力努力态度。 也就是:做一个努力工作却不甘于只做眼前的事,而想要做更有挑战的事,这种人才能逃离平庸,取得非凡成就。 01 不甘平凡…

django+uniapp校园失物招领系统e5asg 微信小程序python

本失物招领小程序&#xff0c;使用的是比较成熟的python语言和比较完善的MySQL数据库&#xff0c;将网络失物招领小程序信息管理系统可以更安全、技术性更强的满足网站所有信息的管理。 失物招领小程序主要实现了管理员服务端模块、学生微信端模块二大部分。通过本失物招领小程…

200个有趣的HTML前端游戏项目合集(持续更新中)

&#x1f482; 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】&#x1f91f; 一站式轻松构建小程序、Web网站、移动应用&#xff1a;&#x1f449;注册地址&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交…

新生报到系统的设计与实现(论文+源码)_kaic

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对新生报到信息管理混乱&#xff0c;出错率高&#xff0c;信息安全性差…

11-2说说小滴课堂之前的被薅羊毛的事情+防范解决方案

11-2说说小滴课堂之前的被薅羊毛的事情防范解决方案