c到c++衔接速成

news2024/10/10 14:32:53

温馨提示:本篇文章乃博主多次学习后的总结,其中一些专业名词的概念不会做介绍,本篇文章只解决实操问题

c到c++中,语法上得到了许多升级,那么哪些地方升级了,我们来快速复习一下

目录

头文件的升级

命名空间

定义方式

本质

命名空间使⽤

输入和输出

输入

变量名输入

数组输入

普通数组的输入

字符串的输入

输出

普通输出

数组的输出

缺省参数

概念

种类

半缺省

全缺省

函数重载

// 1 、参数类型不同

// 2 、参数个数不同

// 3 、参数类型顺序不同

错误的函数重载

引用

概念

定义

特性

引用的使用

const引用

引用和指针的关系

inline

nullptr


头文件的升级

c语言的头文件<stdio.h>包含了输入以及输出,当然啦在vs中还需要再加上一串特殊的代码才能保证scanf正常使用

c++头文件<iostream>包含了输入和输出,但并没有使用库,因此当使用cin和cout时依旧会报错,那么如何解决这种问题呢?方法一使用using namespace std; 方法二使用辩位符(::),如果你愿意也可以叫它冒号双胞胎,那么只要是遇到std库包含的东西就必须在它的前面加上std::

命名空间

定义方式

namespace 空间名

{


}

本质

定义出⼀个域,这个域跟全局域各⾃独⽴,不同的域可以定义同名变量

命名空间使⽤

1.指定命名空间访问, 即:命名空间::(辨位符)

2.using将命名空间中某个成员展开, 即在main函数上面添加using namespace 空间名;

输入和输出

输入

变量名输入

cin >> a;

数组输入

普通数组的输入

for(int i = 0; i < sz(数组的长度);i++)

{
       cin >> a[i];

}

字符串的输入

cin >> a;//这个a是数组名。

输出

普通输出

cout << 变量名 << endl;

数组的输出

for(int i = 0; i < sz(数组的长度);i++)

{
       cout << a[i];

}

缺省参数

概念

声明或定义函数时为函数的参数指定⼀个缺省值。

种类

半缺省

概念:函数的部分形参有缺省值

注意:必须从右往左依次连续缺省,不能间隔跳跃给缺省值。

样例:

void Func2(int a, int b = 10, int c = 20)

{

cout << "a = " << a << endl;

cout << "b = " << b << endl;

cout << "c = " << c << endl << endl;

}

全缺省

概念:函数的部分形参有缺省值

样例:

void Func1(int a = 10, int b = 20, int c = 30)

{

cout << "a = " << a << endl;

cout << "b = " << b << endl;

cout << "c = " << c << endl << endl;

}

函数重载

概念:在同⼀作⽤域中出现同名函数,但是要求这些同名函数的形参不同,可以是参数个数不同或者类型不同。

// 1 、参数类型不同

int Add(int left, int right)

{

cout << "int Add(int left, int right)" << endl;

return left + right;

}

double Add(double left, double right)

{

cout << "double Add(double left, double right)" << endl;

return left + right;

}

// 2 、参数个数不同

void f()

{

cout << "f()" << endl;

}

void f(int a)

{

cout << "f(int a)" << endl;

}

// 3 、参数类型顺序不同

void f(int a, char b)

{

cout << "f(int a,char b)" << endl;

}

void f(char b, int a)

{

cout << "f(char b, int a)" << endl;

}

错误的函数重载

void f1()

{

cout << "f()" << endl;

}

void f1(int a = 10)

{

cout << "f(int a)" << endl;

}

引用

概念

引⽤不是新定义⼀个变量,⽽是给已存在变量取了⼀个别名

定义

类型& 引⽤别名=引⽤对象;

特性

1.引⽤在定义时必须初始化

2.⼀个变量可以有多个引⽤

3.引⽤⼀旦引⽤⼀个实体,再不能引⽤其他实体

总结:引用必须初始化,变量支持多引用,只能引用一个实体

引用的使用

引⽤在实践中主要是引⽤传参和引⽤做返回值中减少拷⻉提⾼效率和改变引⽤对象时同时改变被 引⽤对象。

引⽤传参跟指针传参功能是类似的,引⽤传参相对更⽅便⼀些。

总结:可以减少拷贝从而提高效率,改变引用对象的同时,被引用对象也会被改变

样例:

void Swap(int& rx, int& ry)

{

int tmp = rx;

rx = ry;

ry = tmp;

}

const引用

const引用的对象可以是必须要const引用的对象或普通对象,对象的访问权限在const引⽤过程中只会缩小

引用和指针的关系

1.概念上,引用是给一个变量取别名,指针是存储一个变量的地址

2.初始化方面,引用必须初始化,指针建议初始化(也就是可以不初始化,但可能会出现一些问题)

3.引用:引用了一个对象后,不能再引用其他对象 指针:可以不断地变化所指向的对象

4.引用:直接指向一个对象   举例:在函数中使用引用后,形参改变后,实参也会改变

   指针:需要解引用才能指向对象   举例:在函数中使用指针后,实参需要靠返回的指针才会改变

5.指针可能会出现空指针和野指针的问题,引用很少出现

6.sizeof中含义不同,引⽤结果为引⽤类型的⼤⼩,但指针始终是地址空间所占字节个数

inline

被inline修饰的函数叫内联函数,那么什么是内联函数?说白了就是将一些函数进行了折叠。

那么被它修饰的函数通常是那些短小且调用频繁的函数

nullptr

比c的NULL更高级,更好用,更安全

那么本篇文章的内容,就先到这里了。我们下期见。

都看到这里了,点个赞吧!

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

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

相关文章

国产长芯微LDC5791是一款单通道、20位、无缓冲电压输出DAC完全P2P替代AD5791

描述 LDC5791是一款单通道、20位、无缓冲电压输出DAC&#xff0c;采用最高33 V的双极性电源供电。正基准电压输入范围为5 V至VDD – 2.5V&#xff0c;负基准电压输入范围为VSS 2.5 V至0 V。相对精度最大值为1 LSB&#xff0c;保证工作单调性&#xff0c;差分非线性(DNL)最大值…

基于echarts的旅游信息(游客行为分析)大数据可视化平台(echarts+Django+MySQL+Scrapy框架爬虫;程序+论文+开题报告)

摘要 本论文旨在研究Python技术和ECharts可视化技术在游客行为分析系统中的应用&#xff0c;通过对旅游数据的深入分析&#xff0c;希望能够揭示出南京旅游市场的现状和趋势&#xff0c;从而为游客提供更优质的旅游体验&#xff0c;也可以为政府和旅游企业制定更加科学和有效的…

Spring事务的1道面试题

每次聊起Spring事务&#xff0c;好像很熟悉&#xff0c;又好像很陌生。本篇通过一道面试题和一些实践&#xff0c;来拆解几个Spring事务的常见坑点。 原理 Spring事务的原理是&#xff1a;通过AOP切面的方式实现的&#xff0c;也就是通过代理模式去实现事务增强。 具体过程是…

2024年诺贝尔物理学奖

2024年&#xff0c;诺贝尔物理学奖没有颁给物理学家&#xff0c;而是授予了两位计算机科学家&#xff0c;表彰他们在神经网络领域的开创性工作&#xff0c;这项研究成为了我们今天所称的人工智能的基础。这标志着物理学与计算机科学之间的深度融合。 获奖者约翰霍普菲尔德和杰弗…

财政警钟敲响!CBO预测:美国2024财年赤字预计达1.8万亿美元

KlipC报道&#xff1a;美国国会预算办公室&#xff08;CBO&#xff09;近日发布报告显示&#xff0c;2024财年&#xff08;2023年10月1日至2024年9月30日&#xff09;&#xff0c;美国联邦政府预算赤字高达1.8万亿美元&#xff0c;与上一财年相比增加了1390亿美元。据CBO预测&a…

转型AI产品经理需要掌握的硬知识、经理能力模型和常见AI概念梳理

近几年&#xff0c;从亚马逊&#xff0c; Facebook&#xff0c;到谷歌&#xff0c;微软&#xff0c;再到国内的BAT&#xff0c;全球最具影响力的技术公司都将目光转向了人工智能&#xff08; AI &#xff09;。2016年 AlphaGo 战胜李世石&#xff0c;把公众的目光也聚集到了人工…

IROS24新鲜出炉:PRL-Track,最先进的无人机视觉目标跟踪系统!

导读&#xff1a; 近年来&#xff0c;随着无人机技术的飞速发展&#xff0c;视觉目标跟踪在无人机的自主应用中扮演着越来越重要的角色&#xff0c;然而&#xff0c;在复杂多变的环境中&#xff0c;实现高精度的目标跟踪并非易事。无人机在飞行过程中&#xff0c;常常会遇到目标…

介绍几个电池充电管理芯片(TP4056、SGM40561)

TP4056 上一篇我们介绍了个TP4055&#xff0c;那么跟TP4055相比&#xff0c;TP4056肯定是做了升级的。 首先是有最高1000mA的充电电流&#xff0c;而TP4055是500mA。 一般来说我们尽可能的让充电电流接近电池容量的一半&#xff0c;这样对电池比较好。 充电电压都是4.2V。 …

winform实现托盘语音提醒

测试环境: visual studio 2022 window 10 .net framework 4.6 本文实现的功能有&#xff1a; 1 托盘最小化 2 语音定时播放 3 检测到操作系统被客户点静音后&#xff0c;需要程序控制开启音量(在运行过程中&#xff0c;由于语音重复播放&#xff0c;客户很烦&#…

【Protobuf】基本使用总结+项目实践

概述 序列化与反序列化 网络传输中使用&#xff0c;可以实现将对象转换为二进制序列&#xff0c;然后将二进制序列转换为对象&#xff0c;这一个交互的过程就是序列化。生成的数据&#xff0c;持久化存储到磁盘上的过程&#xff0c;也需要经过序列化和反序列化才可以实现。 序…

SpringBoot实现的美发门店客户关系管理(CRM)系统

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

浅谈2024年诺贝尔物理学奖颁发给了机器学习与神经网络领域的研究者

目录 1.概述 1.1. 跨学科的融合 1.2. 推动科学研究的工具 1.3. 对科学界的激励 1.4. 技术的社会影响 2.机器学习与神经网络的发展前景 2.1.具体应用与作用 2.1.1. 医疗健康 2.1.2. 金融 2.1.3. 制造业 2.1.4. 交通与物流 2.1.5. 零售 2.2.未来展望 2.3.科学研究与…

C# 实现调用函数,打印日志(通过反射代理、非IOC)

&#x1f388;个人主页&#xff1a;靓仔很忙i &#x1f4bb;B 站主页&#xff1a;&#x1f449;B站&#x1f448; &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;C# &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff…

宝塔面板配置FTP服务结合内网穿透实现其他设备远程连接上传文件

文章目录 前言1. Linux安装Cpolar2. 创建FTP公网地址3. 宝塔FTP服务设置4. FTP服务远程连接小结 5. 固定FTP公网地址6. 固定FTP地址连接 前言 本文主要介绍宝塔FTP文件传输服务如何搭配内网穿透工具&#xff0c;实现随时随地远程连接局域网环境搭建的宝塔FTP文件服务并进行文件…

电商数据淘宝/京东/1688商品SKU数据采集||电商API接口

电商数据采集接口数据分析是一个涉及多个步骤的过程&#xff0c;以下是一个详细的指南&#xff1a; 一、数据采集接口的选择与接入 选择合适的电商数据采集接口&#xff1a; 根据需求选择提供所需数据的电商平台接口。考虑接口的稳定性、数据更新频率及准确性。 接口接入准备&…

《网络数据安全管理条例》正式公布,规范数据处理活动,保障网络数据安全

近日&#xff0c;《网络数据安全管理条例》&#xff08;以下简称《条例》&#xff09;正式公布&#xff0c;自2025年1月1日起施行。 《条例》旨在规范网络数据处理活动&#xff0c;保障网络数据安全&#xff0c;促进网络数据依法合理有效利用&#xff0c;保护个人、组织的合法权…

java时间复杂度与空间复杂度的排序

怎么理解时间复杂度和空间复杂度 时间复杂度和空间复杂度一般是针对算法而言&#xff0c;是衡量一个算法是否高效的重要标准。先纠正一个误区&#xff0c;时间复杂度并不是算法执行的时间&#xff0c;再纠正一个误区&#xff0c;算法不单单指冒泡排序之类的&#xff0c;一个循…

获取期货股票历史数据以及均线策略分析

【数据获取】银河金融数据库&#xff08;yinhedata.com&#xff09;能够获取国内外金融股票、期货历史行情数据&#xff0c;包含各分钟级别。 【搭建策略】均线策略作为一种广泛应用于股票、期货等市场的技术分析方法&#xff0c;凭借其简单易懂、操作性强等特点&#xff0c;深…

CV图像处理小工具——json文件转P格式mask

CV图像处理小工具——json文件转P格式mask import cv2 import json import numpy as np import osdef func(file_path: str) -> np.ndarray:try:with open(file_path, moder, encoding"utf-8") as f:configs json.load(f)# 检查JSON是否包含必要的字段if "…

【专题】2024年中国电商市场研究报告合集PDF分享(附原数据表)

原文链接&#xff1a;https://tecdat.cn/?p37835 在全球电商持续发展的背景下&#xff0c;中国电商市场面临新态势。 增长压力与机遇并存&#xff0c;从综合电商与直播电商发展的放缓&#xff0c;到企业 3C 数码商用品电商采购的趋势&#xff0c;以及零售业拥抱“性价比时代…