初阶c++入门

1.命名空间 namespace
  • 变量的查找范围(默认的情况下)

    • 当前的局部变量
    • 全局变量
    • 不会去命名空间去找(以一定的格式 命名::变量或者函数,就是直接去命名空间里去查找)
  • 命名空间可以嵌套,来解决命名空间命名重复的情况

使用命名空间
  • (直接指定命名空间)使用命名空间定义的结构体:
namespace bit
{int a=0;struct Node{int val;struct Node*next;}int sum(int x,int y){return x+y;}
}
//堆命名空间中的变量的使用
int b=bit::a;
//对命名空间的函数的使用
int sum=bit::sum(1,2);
//对命名空间结构体的使用
struct bit::Node newnode;
  • 多个文件可以定义同一个命名空间,它们是会合并的。同一个命名空间里的名称不能相同。
  • 展开命名空间
using namespace bit;//改变了查找规则,默认的查找次序的 局部变量,全局变量,展开命名空间之后,默认的查找次序会加上命名空间。
//当只有一个命名空间展开时,命名冲突发生的可能性很小
//当有多个命名空间展开时,很容易发生命名冲突//例子:
namespace bit
{struct Node{int val;struct Node*next;}
}namespace bid
{struct Node{int val;struct Node*next;}
}using namespace bit;
using namespace bid;
//上面的展开就出现命名冲突
  • 指定展开某一个
namespace bit
{int a=0;struct Node{int val;struct Node*next;}
}
using bit::a;
  • 区域的划分
    • 局部域
    • 全局域
    • 命名空间域

不同的域 可以定义同名的变量/函数/结构体类型

不同的是,局部域和全局域同时也代表了变量的生命周期,但是命名空间域中的变量依然是全局变量,命名空间域中的变量的生命周期和全局变量是一样的。

2.输入输出

c++的官方头文件是放在一个命名空间里的,命名空间的名称为std

  • 流输出
  • 流提取
//包含头文件
#incldue<iostream>
using std::cout;
using std::endl;
int main()
{int a=1;float b=1.2;//流的输出//可以自动的识别类型cout<<a<<' '<<b'\n'<<endl;/*这个里的endl也有换行的作用*///流的输入//将i对象的数值,放在j对象中std:;cin>>i>>J;return 0;
}
3.缺省参数

在没有给函数传参数的时候,默认是该位置的缺省值

void fac(int a=1,int b=2,int c=3)
{//操作···
}//函数的调用
fac();
fac(2);
fac(2,3);//这个样的写法是错误的
fac(2, ,3);
  • 全缺省
void fac(int a=1,int b=2,int c=3)
  • 半缺省
void fac(int a,int b=2,int c=3)
//只能从右向左缺省

注:缺省参数规定是在函数的申明给

4.函数的重载

函数的重载:就是函数的一种特殊的情况,c++允许在同一个作用域中申明一个功能类似的同名函数,但这些函数的形参列表(参数类型,参数的数量,参数的顺序)不同,常用与功能类似的的同名函数,依据形参列表来确定应该调用哪个函数。

运行时会自动匹配参数,上述的三个有一个不同就可以。

注:

  • 返回值不同不能辨别函数的重载
  • 当传入的函数参数需要类型转换的时候,重载函数就很容易出错,不知道以哪个函数的参数作为标准进行转化,对于非重载函数就没有这个问题

C语言和C++在链接的不同

  • C语言链接查找函数的定义是用的是函数名寻找
  • C++链接查找的函数名的修饰是通过函数名和函数的参数来修饰的(不同的编译器命名规则不同),所以C++可以使用重载函数
5.引用

引用就是取别名,一个变量可以取多个别名

int a=0;
int&b=a;
//可以给别名取别名,本质上还是作用于a
int&c=b;
//注:都是同一个地址,同一块空间,就是名字不同
  • 引用的作用和指针类似

  • 引用和指针的不同,引用在初始化之后,是不能改变指向的

注:引用必须要初始化

//不可以取别名的情况
const int m=0;
int& n=m;
//这个是不行的
//理由:权限的方法
//m是只读的,而n则是可读可写的//下面是可以的,这个是权限的平移
const int& n=m;//权限是可以缩小的,下面这个也是可以的
int m=0;
const int&n=m;

权限:作用于变量本身(引用和指针都有,值和值之间没有)

  • 权限不可以放大,可以平移
  • 权限是可以缩小的

总结

	这就是一些c++初阶的一些知识,希望能对你有所帮助,文中的举例并不详尽希望大家能在评论区或私信指教。

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

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

相关文章

electron录制工具-desktopCapturer录屏

需求 录屏状态时&#xff0c;屏幕底部有个计时器&#xff0c;点击计时器停止录屏&#xff0c;跳转录屏结束的视频播放。 效果如下 electron-录屏演示 实现 计时器 创建一个浮窗&#xff0c;根据x、y坐标移动窗口的位置&#xff1b; // 获取屏幕的主显示器信息const { width…

AI服务器相关知识

在当今社会&#xff0c;人工智能的应用场景愈发广泛&#xff0c;如小爱同学、天猫精灵等 AI 服务已深入人们的生活。随着人工智能时代的来临&#xff0c;AI 服务器也开始在社会各行业发挥重要作用。那么&#xff0c;AI 服务器与传统服务器相比&#xff0c;究竟有何独特之处&…

ArcGIS要点和难点以及具体应用和优缺点介绍

ArcGIS是一款强大的地理信息系统(GIS)软件,广泛应用于各种领域,如城市规划、自然资源管理、环境保护、应急响应、地理科学研究和商业分析等。以下是对ArcGIS的详细介绍: 产品概述: ArcGIS提供了一个可伸缩的、全面的GIS平台,满足从桌面到服务器、野外和Web的各种GIS用户…

【docker】 pull access denied for alpine-java, repository does not exist

问题&#xff1a; com.spotify.docker.client.exceptions.DockerException: pull access denied for alpine-java, repository does not exist or may require docker login: denied: requested access to the resource is denied org.apache.maven.plugin.MojoExecutionExce…

Vue16-绑定class样式

一、vue绑定class样式 1-1、需求一&#xff1a;字符串写法 vue实现class样式绑定 1-2、需求二 点击div&#xff0c;随机切换样式。 math.random()&#xff1a;随机数的范围[0, 1) 1-3、需求三&#xff1a;数组写法 样式的追加 1-4、需求四 &#xff1a;对象写法 二、vue绑定…

mqtt js同时监听多个topic

在mqttjs中&#xff0c;可以使用client.subscribe()方法订阅多个topic&#xff0c;然后使用client.on(message)监听所有订阅的topic的消息。以下是一个示例&#xff1a; javascript const mqtt require(mqtt); const client mqtt.connect(mqtt://test.mosquitto.org); clie…

椋鸟C++笔记#5:C++内存管理

文章目录 C语言中的动态内存管理C\\中的动态内存管理使用new/delete操作内置类型使用new/delete操作自定义类型operator new(operator new[])与operator delete(operator delete[])函数operator new函数operator delete函数operator new[]和operator delete[] new与delete的实现…

ref和out

学习ref和out的原因 它们可以解决在函数内部改变外部传入的内容&#xff0c;里面变了&#xff0c;外面也要改变。 static void ChangeValue(int value) {value 3; }static void ChangeArrayValue(int[] arr) {arr[0] 99; }static void ChangeArray(int[] arr) {//重新声明了…

linux centos consul1.15.2一键安装部署

consul原理、作用、安装相关内容 一、理论部分二、安装下载版本地址三、安装consul服务 一、理论部分 1、consul的原理 Consul的原理及作用可以归纳为以下几点&#xff1a; ①、基于Gossip协议的通信&#xff1a;Consul使用了基于Gossip协议的Serf实现来进行通信。 Gossip协议…

【DevOps】服务器硬件基础知识

目录 前言 1、处理器&#xff08;CPU&#xff09;&#xff1a;服务器的“大脑” 2、内存&#xff08;RAM&#xff09;&#xff1a;服务器的“工作台” 3、存储&#xff08;Storage&#xff09;&#xff1a;服务器的“仓库” 4、 网络接口&#xff08;NIC&#xff09;&…

【教学类-64-03】20240611色块眼力挑战(三)-2-10宫格色差10-50(10倍)适合中班幼儿园(星火讯飞)

背景需求&#xff1a; 【教学类-64-02】20240610色块眼力挑战&#xff08;二&#xff09;-2-25宫格&色差10-100&#xff08;10倍&#xff09;&#xff08;星火讯飞&#xff09;-CSDN博客文章浏览阅读360次&#xff0c;点赞17次&#xff0c;收藏13次。【教学类-64-02】2024…

Warning: `ReactDOMTestUtils.act` is deprecated in favor of `React.act`.

问题&#xff1a;在代码中使用jest进行单元测试时&#xff0c;报错如下&#xff1a; 解决思路&#xff1a; 根据报错提示出来的 react-dom/test-utils 进行全局搜索&#xff0c;发现没有该引用&#xff0c;故进入该代码块中分析。发现代码中引入testing-library/react &#…

算法设计与分析(5题Python版)

1、阿里巴巴走进了装满宝藏的藏宝洞。藏宝洞里面有N堆金币&#xff0c;第i堆金币的总重量和总价值分别是m,v。阿里巴巴有一个承重量为T的背包&#xff0c;但并不一定有办法将全部的金币都装进去。 他想装走尽可能多价值的金币&#xff0c;所有金币都可以随意分割&#xff0c;分…

【云岚到家】-day02-2-客户管理-认证授权

【云岚到家】-day02-2-客户管理-认证授权 第二章 客户管理1 认证模块1.1 需求分析1.2 小程序认证1.2.1 测试小程序认证1.2.1.1 参考官方流程1.2.1.2 申请小程序账号1.2.1.3 创建jzo2o-customer1.2.1.4 部署前端1.2.1.5 编译运行1.2.1.6 真机调试 2 阅读代码2.1 小程序认证流程2…

Qt——升级系列(Level Five):显示类控件、输入类控件、多元素控件、容器类控件、布局管理器

显示类控件 Label QLabel 可以⽤来显⽰⽂本和图⽚. 核⼼属性如下&#xff1a; 属性 说明 text QLabel 中的⽂本 textFormat ⽂本的格式. • Qt::PlainText 纯⽂本 • Qt::RichText 富⽂本(⽀持 html 标签) • Qt::MarkdownText markdown 格式 • Qt::AutoText 根…

Nginx配置详细解释:(4)高级配置

目录 1.网页的状态页 2.Nginx第三方模块(echo) 3.变量 4.自定义访问日志 5.Nginx压缩功能 6.https功能 7.自定义图标 Nginx除了一些基本配置外&#xff0c;还有一些高级配置&#xff0c;如网页的状态&#xff0c;第三方模块需要另外安装&#xff0c;支持变量&#xff0c…

【C语言初阶】循环语句

&#x1f31f;博主主页&#xff1a;我是一只海绵派大星 &#x1f4da;专栏分类&#xff1a;C语言 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、什么是循环语句 二、while语句 while语句中的break和continue break continue 三、for循环 break和continue在for循…

MAC安装idea教程

https://blog.csdn.net/qq_41810415/article/details/131649541 JDK安装 https://blog.csdn.net/dddebug/article/details/121713633 2、编辑.bash_profile文件 vim .bash_profile 进入编辑模式后 按 i 开始添加内容 结束编辑模式按 ESC 结束后保存输入 :wq! 不保存输入 :q! 检…

C++ - Clion安装Qt msvc2017版本教程,基础环境配置clion+ Qt5.12.12 msvc2017 + VS2019

背景&#xff1a;平时代码开发使用clion&#xff0c;但使用项目要制定mscv2017版本Qt。先装过mingw版本Qt无法运行&#xff0c;但msvc版本依赖装有Visual Studio&#xff0c;本地装的又是2019版。就出现了这个大坑&#xff0c;需要配置好clion Qt msvc2017 VS2019。 文章目录 …

【Git】Windows下使用可视化工具Sourcetree

参考&#xff1a;[最全面] SourceTree使用教程详解(连接远程仓库&#xff0c;克隆&#xff0c;拉取&#xff0c;提交&#xff0c;推送&#xff0c;新建/切换/合并分支&#xff0c;冲突解决&#xff0c;提交PR) 1.Git工具–sourcetree 之前文章介绍过Linux系统中的Git工具&…