轻松学c++入门篇

news2025/1/27 13:05:58

温馨提示:本篇文章只讲解是什么,以及怎么用

基础概念

namespace的价值

7.1namespace的价值
在C/C++中,变量、函数和后⾯要学到的类都是⼤量存在的,这些变量、函数和类的名称将都存在于全局作⽤域中,可能会导致很多冲突。使⽤命名空间的⽬的是对标识符的名称进⾏本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的


多⽂件中可以定义同名namespace,他们会默认合并到⼀起,就像同⼀个namespace⼀样


总结

像个盒子,用于存放自己写的一些代码,避免和别人的一些代码起到冲突

 C++输⼊&输出

<iostream>是InputOutputStream的缩写,是标准的输⼊、输出流库,定义了标准的输⼊、输
出对象。
i:input   o:   out
std::cin 是istream类的对象,它主要⾯向窄字符(narrowcharacters(oftypechar))的标准输
⼊流。

std::cout 是ostream类的对象,它主要⾯向窄字符的标准输出流。
 std::endl 是⼀个函数,流插⼊输出时,相当于插⼊⼀个换⾏字符加刷新缓冲区。
 <<是流插⼊运算符,>>是流提取运算符。(C语⾔还⽤这两个运算符做位运算左移/右移)
使⽤C++输⼊输出更⽅便,不需要像printf/scanf输⼊输出时那样,需要⼿动指定格式,C++的输⼊
输出可以⾃动识别变量类型(本质是通过函数重载实现的,这个以后会讲到),其实最重要的是
C++的流能更好的⽀持⾃定义类型对象的输⼊输出。
 IO流涉及类和对象,运算符重载、继承等很多⾯向对象的知识,这些知识我们还没有讲解,所以这⾥我们只能简单认识⼀下C++IO流的⽤法,后⾯我们会有专⻔的⼀个章节来细节IO流库。
 cout/cin/endl等都属于C++标准库(std),C++标准库都放在⼀个叫std(standard)的命名空间中,所以要通过命名空间的使⽤⽅式去⽤他们。


总结

第一种使用空间名::去调用函数
第二种使用using namespace 空间名;


 缺省参数

缺省参数是声明或定义函数时为函数的参数指定⼀个缺省值。在调⽤该函数时,如果没有指定实参
则采⽤该形参的缺省值,否则使⽤指定的实参,缺省参数分为全缺省和半缺省参数。(有些地⽅把
缺省参数也叫默认参数)
 
全缺省就是全部形参给缺省值,半缺省就是部分形参给缺省值。C++规定半缺省参数必须从右往左
依次连续缺省,不能间隔跳跃给缺省值

总结

缺省值的使用:当创建的对象没有传值过来时,编译器会自动调用缺省值,全缺省是每一个缺省参数都有缺省值,半缺省是部分有缺省值(这一部分是连续的),一部分没有缺省值


函数重载

C++⽀持在同⼀作⽤域中出现同名函数,但是要求这些同名函数的形参不同,可以是参数个数不同或者类型不同。这样C++函数调⽤就表现出了多态⾏为,使⽤更灵活。C语⾔是不⽀持同⼀作⽤域中出现同名函数的

总结

函数重载:函数名相同,但参数的个数或类型不同,注意与函数的类型无关

引⽤的概念和定义

引⽤不是新定义⼀个变量,⽽是给已存在变量取了⼀个别名,编译器不会为引⽤变量开辟内存空间,它和它引⽤的变量共⽤同⼀块内存空间。⽐如:水浒传中李逵,宋江叫"及时雨",江湖上⼈称"⿊旋⻛";林冲,外号豹⼦头;

总结
符号:&
类型& 引⽤别名=引⽤对象;

 引⽤的特性

1. 引⽤在定义时必须初始化
2. ⼀个变量可以有多个引⽤
3. 引⽤⼀旦引⽤⼀个实体,再不能引⽤其他实体


 const引⽤

可以引⽤⼀个const对象,但是必须⽤const引⽤。const引⽤也可以引⽤普通对象,因为对象的访
问权限在引⽤过程中可以缩⼩,但是不能放⼤


inline
 

⽤inline修饰的函数叫做内联函数,编译时C++编译器会在调⽤的地⽅展开内联函数,这样调⽤内联函数就需要建⽴栈帧了,就可以提⾼效率。
 inline对于编译器⽽⾔只是⼀个建议,也就是说,你加了inline编译器也可以选择在调⽤的地⽅不展
开,不同编译器关于inline什么情况展开各不相同,因为C++标准没有规定这个。inline适⽤于频繁
调⽤的短⼩函数,对于递归函数,代码相对多⼀些的函数,加上inline也会被编译器忽略。 
C++11中引⼊nullptr,nullptr是⼀个特殊的关键字,nullptr是⼀种特殊类型的字⾯量,它可以转换
成任意其他类型的指针类型。使⽤nullptr定义空指针可以避免类型转换的问题,因为nullptr只能被
隐式地转换为指针类型,⽽不能被转换为整数类型。

实操视频

视频链接:【c++入门】https://www.bilibili.com/video/BV1zBige5E5Y?vd_source=9c17c862acda0523093f08ff7dd82439

相信阅读完这篇文章的你一定可以理解它是什么,看完视频后你也会理解它怎么用,我们下期见 

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

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

相关文章

MySQL--数据库备份

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 一、为什么要备份 备份&#xff1a;能够防止由于机械故障以及人为误操作带来的数据丢失&#xff0c;例如将数据库文件保存在了其它地方。 冗余&#…

AISOO爱数AnyShare/易享云-文档云数据恢复-2024.8.4

故障简述 一台数AnyShare的数据磁盘因物理故障&#xff0c;导致超过300GB企业文档资料远程访问。 客户在当地A数据恢复公司开盘恢复数据&#xff0c;但AnyShare的底层数据特有元数据信息&#xff0c;A恢复公司未能恢复此元数据信息&#xff0c;所以AnyShare极无法访问丢失的企…

栈和队列——4.前k个高频元素

力扣题目链接 给定一个非空的整数数组&#xff0c;返回其中出现频率前 k 高的元素。 示例&#xff1a; 输入&#xff1a;nums [1,1,1,2,2,3], k 2 输出&#xff1a;[1,2] 题干很简单&#xff0c;就是对数组中的元素进行频次计算&#xff0c;找到频次最多的前k和元素。那么…

48天笔试训练错题——day37

目录 选择题 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 编程题 1. 数据库连接池 2. mkdir 选择题 1. 2. 数据的五元组&#xff1a;源IP&#xff0c;源端口&#xff0c;目的IP&#xff0c;目的端口&#xff0c;协议。 源IP&#xff1a;描述数据从哪个主机上产生。 目的I…

南京观海微电子----单通道遥控开关电路原理及制作

本文介绍的遥控开关&#xff0c;具有遥控距离远&#xff08;大于30米&#xff09;&#xff0c;无方向限制&#xff0c;可穿透墙壁&#xff0c;工作稳定&#xff0c;体积小巧等优点。只要在家电设备的供电回路中加入这种电路&#xff0c;便能使家电具有遥控功能。下面分别介绍它…

『python爬虫』beautifulsoup库获取文本的方法.get_text()、.text 和 .string区别(保姆级图文)

目录 区别.string(不推荐用).text(get_text的简化版少敲代码的时候用).get_text(推荐用,功能强大,为什么不爱呢?) 示例代码总结 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 区别 省流直接看get_text 推荐用这个…

[BJDCTF2020]Cookie is so stable1

打开题目 查看页面源码 点击hint查看源码 提示看cookie&#xff0c;burp抓包查看cookie 试一下 尝试{{7*7}}&#xff0c;发现ssti漏洞&#xff0c;判断是twig 抓包&#xff0c;发现user为注入点 输入payload {{_self.env.registerUndefinedFilterCallback("exec"…

.NET 8 通用权限框架 前后端分离,开箱即用

目录 前言​ 项目介绍 1、支持各种数据库 2、前端运行步骤 3、演示环境 4、项目地址 5、在线文档 项目使用 项目功能 项目截图 总结 前言​ 推荐一个基于.NET 8 实现的通用权限开发框架Admin.NET&#xff0c;前端使用Vue3/Element-plus开发。 基于.NET 8(Furion)/Sq…

【中项】系统集成项目管理工程师-第9章 项目管理概论-9.9价值交付系统

前言&#xff1a;系统集成项目管理工程师专业&#xff0c;现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试&#xff0c;全称为“全国计算机与软件专业技术资格&#xff08;水平&#xff09;考试”&…

十分钟速通 Vue 动态 Class、Style

计算属性 大家有没有思考过这样一个问题&#xff0c;下面这段代码&#xff0c;功能上没什么问题&#xff0c;但是读起来很费劲&#xff0c;因为需要思考过后&#xff0c;才能知道这段代码的意思。 <p>{{ message.split().reverse().join() }}</p>这完全不符合面向…

[NISACTF 2022]ezpie- 入土为安的第十五天

pwn的第3天 PIE保护ret2text栈 按照签到题的套路是找main&#xff0c;buf,shell,bin/sh/ 但是是PIE保护 那有什么不一样的呢 PIE保护&#xff1a; ​ PIE全称是position-independent executable&#xff0c;中文解释为地址无关可执行文件&#xff0c;该技术是一个针对代码…

C++ | (一)C++入门基础

从本篇文章开始&#xff0c;我们正式进行C的系统学习。C是在C语言的基础上添加了面向对象编程的特性&#xff0c;是C语言的延伸&#xff0c;并遵循C语言的绝大多数语法。如果想学习C&#xff0c;必须要有一定的C语言基础&#xff0c;这样学起来才不会太过痛苦。 本文章即假设读…

Vue分析脚手架结构

1.分析结构 <!DOCTYPE html> <html lang""><head><meta charset"utf-8"><!-- 针对IE浏览器 得一个特殊配置&#xff0c;含义是让IE浏览器以最高得渲染级别渲染页面 --><meta http-equiv"X-UA-Compatible" cont…

吃瓜用户看广告获取密码访问网页内容流量主模式源码

用户看广告获取密码访问网页内容&#xff0c;网站生成内容&#xff0c;用户需要浏览内容跳转至小程序&#xff0c;观看广告后获取密码&#xff0c;输入密码查看网页内容。 与之前得9.9付费进群区别就是内容体现在了网页里&#xff0c;用户不需要进群查看。并且不需要付费&…

HTML 基础结构

目录 1. 文档声明 2. 根标签 3. 头部元素 4. 主题元素 5. 注释 6. 演示 1. 文档声明 <!DOCTYPE html>&#xff1a;声明文档类型&#xff0c;表示该文档是 html 文档&#xff0c; 2. 根标签 &#xff08;1&#xff09;所有的其他标签都要放在一对根标签中&#…

MySQL精简笔记

基础类型 整型&#xff1a;bit&#xff0c;tinyint&#xff0c;smallint&#xff0c;int&#xff0c;bigint浮点&#xff1a;fload&#xff0c;double&#xff08;M&#xff1a;整数小数的位数&#xff0c;D&#xff1a;小数的位数&#xff09;无符号&#xff1a; decimal&…

C++类和对象知识巩固:相关习题解析

目录 1&#xff0c;求下面析构的顺序 2&#xff0c;以下调用了多少次拷贝构造 3&#xff0c;计算日期到天数的转换 4&#xff0c;日期差值 5&#xff0c;打印日期 6&#xff0c;累加天数 7&#xff0c;求123...n&#xff0c;要求不能使用乘除法、for、while、if、else、…

springboot2自定义starter

1.创建maven项目。首先根据springboot 约定规范&#xff0c;Starter项目的命名规范如下&#xff1a; 建议自定义的starter 以 xxx-spring-boot-starter 命名&#xff0c;官方的Starter一般都是以spring-boot-starter-为前缀。这样做的目的是为了避免与官方或其他第三方提供的St…

C#-读取测序数据的ABI文件并绘制svg格式峰图

本地环境&#xff1a;win10&#xff0c;visual studio 2022 community 目录 前言问题描述实现效果解决思路实现要点ABI文件的组织方式svg绘制问题变色碱基值 动态设置svg图像宽度 前言 本文是在已有的代码基础上进行的开发&#xff0c;前期已经实现&#xff1a; ABI文件的解析…

8090怀旧视频素材去哪里找?怀旧童年的素材库分享给你

在这个充满活力的现代社会中&#xff0c;对80和90年代的复古风情的怀旧情感愈加浓厚。那些年的音乐、电影、日常生活乃至街头巷尾的景象&#xff0c;总能唤起人们的美好回忆。对于视频创作者而言&#xff0c;制作一部带有80和90年代怀旧风格的视频&#xff0c;不仅能触动观众的…