C++入门(头文件,命名空间,作用域,输入输出流,引用,缺省参数,函数重载)
目录
一,头文件
二,命名空间
三,作用域
四,输入输出流
五:引用
六,缺省参数
七,函数重载
一,头文件
C++的头文件与C是有差距的,C的头文件是#include<stdio.h>,而C++是#include<iostream>,两个文件地位作用差不多,原来C中的头文件像:#include<math.h>,#include<stdlib.h>,在C++中是#include<cmath>,#include<cstdlib>,当然也有C++中有#include<string>文件,可以使用C++的字符串,以后我们会明白,这个很方便。
二,命名空间
可能很多初学者,都会莫名奇妙的敲这样的一段代码
using namespace std;
这段代码是什么意思呢?现在我来给大家解释。首先我们要明白命名空间是什么,我们可以理解命名空间是一个与其他的空间隔离开来的一块空间,里面可以有C++的库函数,也可能有我们自己创建的变量,函数,这样做的原因是为了避免当我们不使用库函数时命名与库函数的冲突,或者大型项目之中与其他程序员的代码命名冲突,相当于独立包装起来了,我们使用时需要解开包装,上面这段代码就是解开包装,但是这个太粗暴了,一下子就拿出了这个包装里面所有的东西,那我们如何单独拿出我们想要的呢?看下面代码
//我们先自己创建一个命名空间
namespace xhk{
int a=10;
int b=20;
int add(int x,int y){
return x+y;
}
}
//解开包装里所有的东西
using namespace xhk;
//只解开我们需要的东西变量a
using xhk::a;
当然我们也有其他的办法去拿到这些数据,但是稍微麻烦一些,在下一个内容作用域
三,作用域
C++相对于C有一个很大的优势就是包装特别是大型的程序开发中,在C++中有很多东西是包装起来的,像命名空间的包装作用,我们想要使用它们我们需要做一些表明使用来源的声明,而作用域声明符就是用来标明出处的特殊符号————“::”,那作用域声明符怎么用呢?在 :: 后面是我们要使用的东西,而 :: 前面是它的来源。举个例子
std::strlen(s);
四,输入输出流
C++的输入输出于C是不同的,但是C++中是可以使用C的输入输出,但是要包括C的头文件,我们这里讲C++的输入输出。
输出: cout
使用例子
cout<<"ABC"<<endl<<"DEF"; //endl代表换行,"\n"也可以达到相同作用
//效果
输出: ABCDEF
输入: cin
使用例子
int a;
//输入
cin>>a;
//输出
cout<<a<<endl;
五:引用
在C中,我们有时不得不使用指针,像函数传参但要改变原参数的值,这是因为传参传的是临时拷贝,并不是原参数。在C++中加入了引用,引用类似于指针,但是使用简单,效果类似于起别名,但是使用要注意,类型要匹配,而且使用时要初始化,并且不可以改变指向,可以多层嵌套。
int a=10;
//使用引用
int& b=a; //b是a的别名
b=0;
cout<<a<<endl;
//输出
0
六,缺省参数
在C++函数中是支持缺省参数的,那么缺省参数是什么呢?假设有一个Add函数,函数有两个参数,有时候我们可以不传参数过去,它就会使用你提前定好的默认参数,我们先看具体的例子
int Add(int x =0 ,int y =0){
return x+y;
}
Add(2,3); //结果是5
Add(2); //结果是2
Add(); //结果是0
但是缺省参数的使用是有限制的,缺省参数从左边第一个缺省参数开始,右边的都必须是缺省参数,不能在一群参数中间夹一个缺省参数
七,函数重载
我们都知道在C语言中函数的名称是不可以相同的,但是我们有时需要一个函数面对不同的情况做出不同的反应操作怎么办呢?在C++中给出了函数重载来解决,不过函数重载是有要求的,必须参数不同,可以是缺省参数,也可以参数类型,个数,类型顺序不同。(但重载的坑很多,有些情况可能会出现二义性导致程序崩溃)接下来看正确的函数重载例子
int Add(int x,int y){
return x+y;
}
double Add(double x,int y){
return x+y;
}
double Add(double x,double y){
return x+y;
}
int Add(int x=0,int y=0){
return 0;
}
相关文章:
C++入门(头文件,命名空间,作用域,输入输出流,引用,缺省参数,函数重载)
目录 一,头文件 二,命名空间 三,作用域 四,输入输出流 五:引用 六,缺省参数 七,函数重载 一,头文件 C的头文件与C是有差距的,C的头文件是#include<stdio.h>,而C是#inc…...
“Linux免除系统交互操作方法、expect自动化交互工具” 及 “SSH批量修改主机密码脚本”
一、Linux系统免除交互操作方法 1、EOF多文本输入 案例:为机器磁盘进行分区并实现挂载,免交互式操作,如何实现? #!/bin/bash fdisk /dev/sdb <<EOF n p 1 wq EOFmkfs.xfs /dev/sdb1 && mkdir -p /data &&am…...
三相异步电机动态数学模型及矢量控制仿真
三相异步电机动态数学模型及矢量控制仿真 本文带你一步步推倒三相异步电机动态数学模型,按基于转子磁链定向的矢量控制进行 matlab 仿真,实现较好的控制效果。 1、异步电机三相方程 2、坐标变换 3、磁链3/2变换推导 4、两相静止坐标系下的方程 5、…...
HTML5 新增表单标签
HTML5为表单添加了一些新的语义化标签,可以更好地描述表单内容和功能。下面是新增的表单标签及其功能: <datalist>标签:用于定义一个选项列表,供用户选择或输入。 <output>标签:用于显示表单提交后的结果…...
【版本控制】Git(学习笔记)
一、Git工作流程图 clone(克隆): 从远程仓库中克隆代码到本地仓库checkout (检出):从本地仓库中检出一个仓库分支然后进行修订add(添加): 在提交前先将代码提交到暂存区commit(提交&…...
C语言,求一个整数的全部素数因子
#include <stdio.h> int prime(int x)//一旦x被2到x-1的数整除,就返回0,一直不被整除,才返回1。 {int j 0;for (j 2; j < x; j){if (x % j 0){return 0;}}return 1; } int main() {int n 0;scanf("%d", &n);int i…...
Jenkins更换主目录
Jenkins储存所有的数据文件在这个目录下. 你可以通过以下几种方式更改: 使用你Web容器的管理工具设置JENKINS_HOME环境参数.在启动Web容器之前设置JENKINS_HOME环境变量.(不推荐)更改Jenkins.war(或者在展开的Web容器)内的web.xml配置文件. 这个值在Jenkins运行时…...
迅为RK3588开发板使用RKNN-Toolkit-lite2运行测试程序
1 首先也需要部署运行环境,将库文件放入 RK3588 开发板上,我们将网盘资料“iTOP-3588 开发 板 \02_ 【 iTOP-RK3588 开 发 板 】 开 发 资 料 \12_NPU 使 用 配 套 资 料 \05_Linux_librknn_api\librknn_api\aarch64”路径下的文件通过U盘拷贝到开发板的…...
1990-2023:RPA的变革之路
01 第一阶段:初级助手与UI测试 阶段简介: RPA开始于简单的数据导入和用户界面测试 在最早期的阶段中,RPA又可比作虚拟化助手,能够助力人力实施的基本数据导入,然而辅助作业时尚需人为操作。RPA 的故事始于用户界面 (U…...
SQL 语法
SQL 语法规则 SQL语句总是以关键字开始,如SELECT、INSERT、UPDATE、DELETE、DROP、CREATE。SQL语句以分号结尾。SQL不区分大小写,意味着update与UPDATE相同。 数据库表 数据库通常包含一个或多个表。每个表都用一个名称标识(例如,…...
吃鸡达人必备神器,提升战斗力享受顶级游戏干货!
大家好!今天我为大家介绍一款专为吃鸡玩家打造的神器——吃鸡盒子。无论您是新手还是老玩家,吃鸡盒子都能帮助您提升游戏的战斗力,分享顶级游戏作战干货,并且还能方便吃鸡作图、查询库存和保护账号安全。 让我们先来说说提升战斗力…...
PyTorch 深度学习之循环神经网络(基础篇)Basic RNN(十一)
0.Revision: DNN dense 重义层 全连接 RNN处理带有序列的数据 1. What is RNNs? linear layer 1.1 What is RNN? tanh (-1, 1) 1.2 RNN Cell in PyTorch 1.3 How to use RNNCell *先把维度搞清楚 多了一个序列的维度 2. How to use RNN 2.1 How to use RNN - numLayers…...
存在已打开的MicrosoftEdge浏览器,无法执行安装
存在问题:UiBot Creator 安装Chrome扩展时,存在已打开的MicrosoftEdge浏览器,无法执行安装。 解决办法: 打开MicrosoftEdge浏览器,然后在浏览器页面右上角打开“…”图标 第二步,打开“…”图标之后&…...
Unity第一人称移动和观察
创建一个可以自由移动的第一人称视角 人物通过WSAD进行前后左右移动,通过鼠标右键进行旋转 Step1:创建一个Player玩家,在节点下加两个子物体,一个摄像头和一个Capsule充当身体 Step2:创建一个脚本挂载在Player节点下,再在这个Pl…...
【UBOOT】1-使用与烧写
一、uboot简介 1)uboot是一个裸机程序,比较复杂 2)最主要的作用是引导Linux内核启动; 初始化DDR; 因为Linux是运行在DDR里面的;而Linux镜像(zImage或uImagedtb)一般存放在SD EMM…...
竞赛 深度学习OCR中文识别 - opencv python
文章目录 0 前言1 课题背景2 实现效果3 文本区域检测网络-CTPN4 文本识别网络-CRNN5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习OCR中文识别系统 ** 该项目较为新颖,适合作为竞赛课题方向,…...
XTU-OJ 1331-密码
题目描述 Eric喜欢使用数字1,2,3,4作为密码,而且他有个怪癖,相邻数字不能相同,且相差不能超过2。当然只用数字做密码,会比较弱,Eric想知道当长度为n时,这样的密码有多少种? 输入 第一行是一个整…...
【docker】ubuntu下安装
ubuntu下安装docker 卸载原生docker更新软件包安装依赖Docker官方GPG密钥添加软件来源仓库安装docker添加用户组运行docker安装工具重启dockerhelloworld 卸载原生docker $ apt-get remove docker docker-engine docker.io containerd runc更新软件包 apt-get update apt-get…...
Linux- 命名信号量和无名信号量的区别
命名信号量和无名信号量之间的区别主要在于它们的可见性、生命周期以及如何在进程或线程之间共享。根据这些特点,它们各自更适合不同的应用场景: 命名信号量: 可见性:命名信号量由一个与其关联的名称标识,通常在某种文…...
【C/C++】STL——深度剖析list容器
👻内容专栏: C/C编程 🐨本文概括:list的介绍与使用、深度剖析及模拟实现。 🐼本文作者: 阿四啊 🐸发布时间:2023.10.12 一、list的介绍与使用 1.1 list的介绍 cpluplus网站中有关…...
#力扣:136. 只出现一次的数字@FDDLC
136. 只出现一次的数字 - 力扣(LeetCode) 一、Java class Solution {public int singleNumber(int[] nums) {int ans 0;for(int num: nums) ans ^ num;return ans;} } 二、C class Solution { public:int singleNumber(vector<int>& nums…...
VR、AR、MR、XR到底都是什么?有什么区别
目录 VRARMRXRAR、VR、MR、XR的区别 VR 英:Virtual Reality 中文翻译:虚拟现实 又称计算机模拟现实。是指由计算机生成3D内容,为用户提供视觉、听觉等感官来模拟现实,具有很强的“临场感”和“沉浸感”。我们可以使用耳机、控制器…...
UE5射击游戏案例蓝图篇(一)
一、使用到的资源 1.小白人动画包 2.基础武器包 3.虚幻商城免费的模型包 二、角色创建 1.以Character为基类创建出需要的角色,双击打开之后并在已有组件的基础上,添加摄像机臂和摄像机两个组件。添加完成之后可以根据自己的需要调整摄像机臂的位置&…...
excel管理接口测试用例
闲话休扯,上需求:自动读取、执行excel里面的接口测试用例,测试完成后,返回错误结果并发送邮件通知。 分析: 1、设计excel表格 2、读取excel表格 3、拼接url,发送请求 4、汇总错误结果、发送邮件 开始实现…...
根文件系统制作并启动 Linux
根文件系统制作并启动 Linux busybox 下载链接:https://busybox.net/ 下载 wget https://busybox.net/downloads/busybox-1.36.1.tar.bz2解压 tar -vxf busybox-1.36.1.tar.bz2 并进入其根目录 export ARCHarm export CROSS_COMPILEarm-none-linux-gnueabihf- m…...
JSKarel教学编程机器人使用介绍
JSKarel教学编程机器人使用介绍 为了避免被编程语言固有的复杂性所困扰,有一个被称为卡雷尔(Karel)机器人的微型世界(microworld)的简化环境,可以让编程初学者从中学习理解编程的基本概念,而不…...
换低挡装置(Kickdown, ACM/ICPC NEERC 2006, UVa1588)rust解法
给出两个长度分别为n1,n2(n1,n2≤100)且每列高度只为1或2的长条。需要将它们放入一个高度为3的容器(如图3-8所示),问能够容纳它们的最短容器长度。 样例 2112112112 2212112 1012121212 2121…...
Windows10用Navicat 定时备份报错80070057
直接按照网上的教程配置定时任务发现报错,提示参数非法之类的,80070057。 搜索加自己测试发现是用户权限问题。 设置任务计划的时候,我用了用户组,选了administors,在勾选上run with hightest privileges。 查找用户…...
JimuReport 积木报表 v1.6.4 稳定版本正式发布 — 开源免费的低代码报表
项目介绍 一款免费的数据可视化报表,含报表和大屏设计,像搭建积木一样在线设计报表!功能涵盖,数据报表、打印设计、图表报表、大屏设计等! Web 版报表设计器,类似于excel操作风格,通过拖拽完成报…...
为什么要把 String 设计为不可变?
将字符串设计为不可变具有多个重要的原因: 线程安全性: 不可变字符串可以在多线程环境中共享而无需额外的同步措施。因为字符串不会改变,多个线程可以同时访问它而不会导致竞态条件或数据不一致性。 缓存和性能优化: 字符串不可变…...
江门电商网站设计培训/帮人推广的平台
本文章首发于浩瀚先森博客,地址: http://www.guohao1206.com/2016/08/23/967.html samba时一款为了实现linux系统中的文件能在windows系统中正常访问的软件,分为服务器端和客户端,按照下列方法安装samba服务器即可在windows系统中访问linux系统中的文件。…...
建立网站卖没有版权的电子书/百度最新收录方法
题目:原题链接(中等) 标签:数组、双指针 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(AB)O(AB)O(AB)O(1)O(1)O(1)72ms (16.67%)Ans 2 (Python)Ans 3 (Python) 解法一: class Solution:def intervalIntersecti…...
宁波做网站公司哪家好/百度网站制作联系方式
大工20春《电源技术》大作业及要求注意请从以下题目中任选其一作答!要求添加自己对于题目相关的学习心得!题目一滤波电路分析总 则围绕滤波电路,阐述其作用、分类,并任选其一类分析其工作原理及应用。撰写要求(1)阐述滤波电路的…...
企业如何做网站收款/男生最喜欢的浏览器推荐
13301 - 星号等腰三角形(重要题型) 时间限制 : 1 秒 内存限制 : 128 MB 输入一个正整数n,输出高为n的由*组成的等腰三角形。 输入 输入一个正整数 输出 输出高为n的由*组成的等腰三角形 样例 输入 3 输出 **** ***** 答案: …...
手机网站建设软件有哪些/cps广告联盟
ps:个人学习笔记,视频链接https://www.bilibili.com/video/BV1Y7411d7Ys 参考链接https://blog.csdn.net/bit452/category_10569531.html 文章目录相关知识点线性模型梯度下降1.梯度下降2.随机梯度下降反向传播1.两层神经网络示例2.反向传播计算损失函数对权重偏导P…...
解决wordpress主题缺少style.css无法安装的方法/谷歌seo推广培训班
一、docker是什么 1、为什么会有docker 一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后…...