C++——初步认识C++和namespace的用法

1.编程语言排行榜

我们通过排行可以看出 C++在变成语言中还是占据着重要的地位

2.C++在工作领域中的应用

1.PC客户端开发。⼀般是开发Windows上的桌面软件,比如WPS之类的,技术栈的话⼀般是C++和 QT,QT 是⼀个跨平台的 C++图形用户界面(Graphical User Interface,GUI)程序。

2. 服务端开发。各种大型应用网络连接的高并发后台服务。这块Java也比较多,C++主要用于⼀些对 性能要求比较高的地方。如:游戏服务、流媒体服务、量化高频交易服务等

3. 游戏引擎开发。很多游戏引擎就都是使⽤C++开发的,游戏开发要掌握C++基础和数据结构,学习 图形学知识,掌握游戏引擎和框架,了解引擎实现,引擎源代码可以学习UE4、Cocos2d-x等开源 引擎实现

4. 嵌⼊式开发。嵌入式把具有计算能力的主控板嵌⼊到机器装置或者电子装置的内部,通过软件能够 控制这些装置。比如:智能手环、摄像头、扫地机器⼈、智能音响、门禁系统、车载系统等等,粗略⼀点,嵌入式开发主要分为嵌入式应用和嵌入式驱动开发。

3.namespace的应用

1.定义命名空间,需要使用到namespace关键字,后⾯跟命名空间的名字,然后接⼀对{}即可,{}中 即为命名空间的成员。命名空间中可以定义变量/函数/类型等。

2.C++中域有函数局部域,全局域,命名空间域,类域;域影响的是编译时语法查找⼀个变量/函数/ 类型出处(声明或定义)的逻辑,所有有了域隔离,名字冲突就解决了。局部域和全局域除了会影响 编译查找逻辑,还会影响变量的生命周期,命名空间域和类域不影响变量生命周期。

1.namespace的用处

当我们用rand的时候便会报错,那么我们怎么样可以给他赋值呢?这便用到了namespace 

 

这时,我们调用namespace域内的变量即可。我们可以看到printf的内部,我在rand的前面加了sun::,这是对你的域进行调用,这个sun是我对域的命名。

同样的,当我们想要调用这个域内的函数的时候,也是sun::+函数名字即可

 

 2. namespace可以嵌套

在sun域内,我又定义了xiao和da,同时定义了两个rand,这里我用的是大的rand的值。 

3.当定义的域名字相同时,会默认合并到一起

这里我定义了两个名字为sun的域,但是当我调用的时候,他会找到含有这个函数的域并且调用。 

4.命名空间的应用 

编译查找⼀个变量的声明/定义时,默认只会在局部或者全局查找,不会到命名空间里面去查找。所以 下面程序会编译报错。所以我们要使用命名空间中定义的变量/函数,有三种方式:

• 指定命名空间访问,项目中推荐这种方式。

• using将命名空间中某个成员展开,项目中经常访问的不存在冲突的成员推荐这种方式。

• 展开命名空间中全部成员,项目不推荐,冲突风险很大,日常小练习程序为了方便推荐使用。

  1.指定命名

因为默认查找全局变量和局部变量,所以找不到a。这是我们只要sun::a即可,上面已经有展示了。

2.将某一个成员展开

这时我没有在全局或局部定义b,所以他会去找域内的b。 

 

当我们在全局定义b时,会出现报错的情况。但是在局部定义时不会出现此情况,并且b的值是你在局部定义的b的值。 

3.将域内全部展开 

 

这里直接将域展开,所以可以直接得到a,b的值。 

5.C++的输入与输出

<iostream>是 Input Output Stream 的缩写,是标准的输入、输出流库,定义了标准的输入、输 出对象。

• std::cin 是 istream 类的对象,它主要面向窄字符(narrow characters (of type char))的标准输 入流。

• std::cout 是 ostream 类的对象,它主要面向窄字符的标准输出流。

• std::endl 是⼀个函数,流插入输出时,相当于插入⼀个换行字符加刷新缓冲区。  相当于“\n”

 

 

从图中我们看到"\n"与endl的作用一样。 并且我们可以看见cin可以自动识别变量的类型。

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

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

相关文章

sourceTree使用脚本一键push代码到gerrit

问题 在gerrit,我们无法直接把代码push到对应的分支。需要把代码push到 HEAD:refs/for/branch,review通过后再submit到分支。所以无法直接使用sourceTree上的推送按钮来push代码。但是可以通过自定义操作和脚本来实现这一功能。 脚本编写 新建文本文档写入以下内容&#xff…

fmql之ubuntu添加dhcp服务

按照官方指示&#xff1a;【在文末】 2024-08-22 buildroot linux 使用wpa_supplicant -B -i wlan0 切换WIFI 设备之后无法上网的问题。解决方法&#xff0c;使用udhcpc -i wlan0 命令-CSDN博客 网口连接路由器&#xff0c;然后发现路由器分配了ip&#xff0c;但是板卡没有配置…

VulnHub-Narak靶机笔记

Narak靶机笔记 概述 Narak是一台Vulnhub的靶机&#xff0c;其中有简单的tftp和webdav的利用&#xff0c;以及motd文件的一些知识 靶机地址&#xff1a; https://pan.baidu.com/s/1PbPrGJQHxsvGYrAN1k1New?pwda7kv 提取码: a7kv 当然你也可以去Vulnhub官网下载 一、nmap扫…

写作练习(一)

一、reply Z-Library The aim is to express gratitude and practice writing, and as a record. 二、Original letter As a college student of computer and a blogger, Z-Library is always a part of my study, which provide many books that I need pay a lost of time …

安捷伦Agilent/keysight 53220A参数资料 通用频率计 计数器

Agilent 53220A&#xff0c;Keysight 53220A&#xff0c;通用频率计数器/计时器&#xff0c;350 MHz&#xff0c;12 位&#xff0c;100 ps 53220A 350 MHz 通用频率计数器/计时器是一款双通道频率计数器&#xff0c;能够执行所需的全部频率和时间间隔测量。它可以添加可选的射…

突破常规:如何利用动态系统思维彻底变革你的团队!

引言 在现代社会中&#xff0c;变化是唯一不变的。面对快速发展的科技和瞬息万变的市场环境&#xff0c;企业和开发团队必须具备适应性和灵活性。动态系统思维作为一种理解和应对复杂系统中变化的方法&#xff0c;提供了有效的解决方案。本文将探讨动态系统思维在敏捷方法中的应…

load jsonl File with OpenAI API request results to pandas data.frame

题意&#xff1a;将包含 OpenAI API 请求结果的 jsonl 文件加载到 pandas DataFrame 中 问题背景&#xff1a; I have a large data set containing around 500k observation. It has a string variable that I want to create an embedding for. I used the OpenAI API to cr…

AI入门系列 | 如何优雅地下载最前沿的模型?

​简介 一片白云横谷口&#xff0c;几多归鸟尽迷巢。 小伙伴们好&#xff0c;我是微信公众号《小窗幽记机器学习》的小编&#xff1a;卖铁观音的小男孩。本系列主要基于过往经历&#xff0c;总结当时自身环境中实操经验。倘若能够顺便帮到他人&#xff0c;也是善莫大焉。 本文…

[已更新]2024数学建模研赛华为杯E题详细思路代码成品文章研究生数学建模数模辅导

截止2024.8.21 12点 已更新e全部小问的建模和问题一的代码 ####https://docs.qq.com/doc/DVU9YYUFLWlNOY3pyE题: 问题1&#xff1a;统计四个观测点的交通流参数随时间的变化规律 为了统计交通流参数&#xff08;如车流密度、流量和速度&#xff09;&#xff0c;首先需要从视…

猫咪检测系统源码分享

猫咪检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

Easypoi模板导出

Easypoi模板导出 优点 快速导出&#xff1a;使用预定义的Excel模板&#xff0c;可以快速导出数据&#xff0c;特别是在数据量大的情况下。简化代码&#xff1a;通过模板导出&#xff0c;减少了编写大量POI代码的需要&#xff0c;使得代码更简洁易懂。灵活性&#xff1a;模板可…

Camunda如何共享流程定义但不共享流程实例?

文章目录 一、项目场景二、问题描述三、解决方案方案一&#xff1a;官方实例化共享定义的方法1. 部署共享定义2. 在查询中包含共享的定义3. 实例化共享定义 方案二&#xff1a;自定义TenantIdProvider方法&#xff0c;将租户id作为变量添加到启动的实例中1. 采用自定义的Tenant…

PHP API 框架:构建高效API的利器

在当今快速发展的互联网时代&#xff0c;API&#xff08;应用程序编程接口&#xff09;已成为连接不同应用程序和服务的关键。PHP&#xff0c;作为一种流行的服务器端脚本语言&#xff0c;提供了多种强大的框架来简化API的开发。本文将介绍PHP API框架的重要性&#xff0c;以及…

Linux笔记---简单指令

1. 使用的环境 博主使用的是华为云服务器xshell终端的方式学习的&#xff0c;因为据说这样的方式比较接近以后的工作环境。 其中云服务器安装的是Ubuntu操作系统(以Linux为内核&#xff0c;适合新手学习Linux的一个版本) 这里的云服务器不一定使用华为的&#xff0c;但是我在…

论文推荐——犹豫直觉模糊偏好关系积性一致性及其在群决策中的应用

犹豫直觉模糊偏好关系积性一致性及其在群决策中的应用 论文全文 论文全文 论文最巧妙的地方就是修正了积性一致性的条件&#xff0c;使得修复方法完全满足互补条件&#xff0c;也算对大佬的工作做了一个很好的修补。

PVE8最新安装使用指南、优化Proxmox VE 8.1

PVE镜像下载 1、在浏览器输入以下网址下载pve的iso安装镜像。 Download Proxmox software, datasheets, agreements 2、制作系统引导盘 这里使用rufus工具将ISO文件刻录进U盘 rufus下载地址:https://wwf.lanzoul.com/i72bm24j105c 密码:5k8t 下载完成后直接双击运行&…

string类(C++)

哈喽各位&#xff01;&#xff0c;久违了&#xff0c;最近怎么样捏&#xff0c;本次进入C的string类&#xff0c;加油加油呀&#xff01; 随记&#xff1a;鼓励创新&#xff0c;宽容失败&#xff01; 1.标准库的string类 1.1string类的了解 string的文献参考链接-->strin…

thinkphp8 从入门到放弃(后面会完善用到哪里写到哪)

thinkphp8 从入门到放弃 引言 thinkphp* 大道至简一、 thinkphp8 安装安装Composerthinkphp 安装命令(tp-项目名称)多应用安装&#xff08;一个项目不会只有一个应用&#xff09;安装完文件目录如下本地部署配置伪静态好了项目可以run 二、架构服务&#xff08;Service&#xf…

DataGrip远程连接Hive

学会用datagrip远程操作hive 连接前提条件&#xff1a; 注意&#xff1a;mysql是否是开启状态 启动hadoop集群 start-all.sh 1、启动hiveserver2服务 nohup hiveserver2 >> /usr/local/soft/hive-3.1.3/hiveserver2.log 2>&1 & 2、beeline连接 beelin…

智能车镜头组入门(六)车模的控制

本文会简单的介绍一些车模控制的方法。前文也说到过&#xff0c;因为我是写摄像头部分的&#xff0c;所以车模的控制部分我只能给大家简单的介绍下。 大家可能有所听说&#xff0c;智能车竞赛又被称为调参竞赛。显然好的参数决定了小车车速的上限。 调参调的是哪呢&#xff1…