【C++初阶】与C相比,C++多出来简单又好用的语法(命名空间、输入输出、缺省参数、函数重载)

文章目录

  • 一、 C++的第一个代码
    • 1、C++兼容C语言
    • 2、hello world 如何用C++语法来写
  • 二、命名空间namespace
    • 1、为什么有命名空间
    • 2、定义
    • 3、命名空间的使用
    • 4、注意事项
  • 三、输入输出
  • 四、缺省参数
    • 1、定义
    • 2、注意
  • 五、函数重载
    • 1、定义
    • 2、使用
  • 六、谢谢观看!

一、 C++的第一个代码

1、C++兼容C语言

就像我们所熟知的第一段C语言代码,“hello world”,其在C++编译器下也可以运行。
注:C语言程序后缀为 .c ,而C++程序后缀为 .cpp
如下图:
在这里插入图片描述
这个C语言程序里面包含了 头文件、主函数、返回类型。它在C++编译器里面同样能够适用。
在C++文件中,我们同样能够使用C语言的语法,即C++兼容C语言。

2、hello world 如何用C++语法来写

在这里插入图片描述

#include <iostream>
using namespace std;
int main()
{cout << "hello world" << endl;return 0;
}

在讲解这段代码之前,我们需要知道下面的基础语法。

二、命名空间namespace

1、为什么有命名空间

在C/C++中,变量、函数和后⾯要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。
简单来说,是用来减少命名冲突而造成程序错误的。

2、定义

其中,namespace是关键字,后面接命名空间的名字,在来一对花括号即可。{}中为命名空间的成员。

在这里插入图片描述
命名空间中可以定义变量、函数、类型等。如下图:

在这里插入图片描述
命名空间的本质是定义一个域,根据不同的域里面的变量可以定义同名变量,来解决命名冲突。

3、命名空间的使用

编译查找⼀个变量的声明/定义时,默认只会在局部或者全局查找,不会到命名空间里面去查找。所以程序会编译报错。所以我们要使用命名空间中定义的变量/函数,有三种方式:
• 指定命名空间访问,项目中推荐使用
在这里插入图片描述
其中,::为域作用限定符

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

• 展开命名空间中全部成员,项目不推荐,冲突风险很大,日常小练习程序为了方便推荐使用。
在这里插入图片描述
由此,我们可知,以下这段代码的第二行的意思为:展开命名空间std中的所有成员。
在这里插入图片描述

4、注意事项

  • namespace只能定义在全局,也可以嵌套定义。
  • 项⽬⼯程中多文件中定义的同名namespace会认为是⼀个namespace,不会冲突。
  • C++标准库都放在⼀个叫std(standard)的命名空间中。
    C语言中的标准库中是许多的函数。 而C++标准库中,是由一个命名空间std给封装起来的,其中又嵌套了一个又一个的命名空间。故在使用库函数时,应该先展开要用的命名空间。

三、输入输出

  • < iostream> 是Input Output Stream 的缩写,是标准的输⼊、输出流库,定义了标准的输入、输出对象。 故,写程序要包含这个库。
  • std::cin 是 istream 类的对象,它主要面向窄字符(narrow characters (of type char))的标准输入流。 在未展开std时,输入应该写为std::cin
  • std::cout 是 ostream 类的对象,它主要面向窄字符的标准输出流。
  • std::endl 是⼀个函数,流插⼊输出时,相当于插⼊⼀个换行字符加刷新缓冲区。起换行作用。
  • <<是流插⼊运算符,>>是流提取运算符
    在这里插入图片描述
    注:这里的输入输出可以自动识别变量的类型。也就是说,不需要指定变量的类型,就可以直接输入输出。
    在这里插入图片描述
    也可以直接输出字符或字符串。如下;
    在这里插入图片描述

四、缺省参数

1、定义

缺省参数是声明或定义函数时为函数的参数指定⼀个缺省值。在调用该函数时,如果没有指定实参
则采用该形参的缺省值,否则使用指定的实参,缺省参数分为全缺省和半缺省参数。(有些地方把
缺省参数也叫默认参数)

在这里插入图片描述

全缺省就是全部形参给缺省值,半缺省就是部分形参给缺省值。

在这里插入图片描述
在这里插入图片描述

2、注意

  • C++规定半缺省参数必须从右往左依次连续缺省,不能间隔跳跃给缺省值。
  • 带缺省参数的函数调⽤,C++规定必须从左到右依次给实参,不能跳跃给实参。
  • 函数声明和定义分离时,缺省参数不能在函数声明和定义中同时出现,规定必须函数声明给缺省值。

五、函数重载

1、定义

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

2、使用

使用函数重载,可以使代码写的更加舒畅。
在这里插入图片描述

六、谢谢观看!

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

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

相关文章

go mod 依赖管理补充2

依赖包的版本问题&#xff0c;别的开发语言有没有类似的问题&#xff1f;是怎么解决的&#xff1f; 举例&#xff1a;java java的依赖包的版本问题&#xff0c;通过Maven模块来操作&#xff0c;可以指定依赖包版本号&#xff0c;如下&#xff1a; go.mod 文件 go.mod文件是G…

怎么用 matlab 设计滞后-超前串联校正网络

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

Kaggle网站免费算力使用,深度学习模型训练

声明&#xff1a; 本文主要内容为&#xff1a;kaggle网站数据集上传&#xff0c;训练模型下载、模型部署、提交后台运行等教程。 1、账号注册 此步骤本文略过&#xff0c;如有需要可以参考其他文章。 2、上传资源 不论是上传训练好的模型进行预测&#xff0c;还是训练用的…

如何提升美国Facebook直播的整体体验?

Facebook作为全球最大的社交媒体平台之一&#xff0c;提供了直播功能&#xff0c;用户可以实时分享生活、见解和创意。许多商家通过美国Facebook直播来获取更多客户&#xff0c;但直播时可能会遇到网络卡顿的问题&#xff0c;导致观看体验不佳。本文将探讨如何解决这个问题&…

文华财经盘立方期货通鳄鱼指标公式均线交易策略源码

文华财经盘立方期货通鳄鱼指标公式均线交易策略源码&#xff1a; 新建主图幅图类型指标都可以&#xff01; VAR1:(HL)/2; 唇:REF(SMA(VAR1,5,1),3),COLORGREEN; 齿:REF(SMA(VAR1,8,1),5),COLORRED; 颚:REF(SMA(VAR1,13,1),8),COLORBLUE;

C++规范

一、VS工具集列表&#xff1a; Visual Studio 2008&#xff1a;v90 Visual Studio 2010&#xff1a;v100 Visual Studio 2012&#xff1a;v110 Visual Studio 2013&#xff1a;v120 Visual Studio 2015&#xff1a;v140 &#xff08;v140_xp&#xff09; Visual Studio 2017&a…

FinClip SDK 入驻鸿蒙生态伙伴市场,激发鸿蒙应用创新活力

华为近期宣布开放“鸿蒙生态伙伴SDK市场”&#xff0c;甄选各类优质、安全的SDK加入聚合平台&#xff0c;致力于帮助各行业开发者轻松、高效地打造鸿蒙原生应用。 目前&#xff0c;已有18个领域、超过350个SDK适配HarmonyOS NEXT版本&#xff0c;并有超过120个SDK完成上架发布…

const 修饰不同内容区分

1.修饰局部变量 const int a 1;int const a 1; 这两种是一样的 注意&#xff1a; const int b; 该情况下编译器会报错&#xff1a;常量变量"b”需要初始值设定项 将一个变量没有赋初始值直接const修饰后&#xff0c;在以后时无法更改内容的。 2.修饰常量字符串 a.…

C++ Linux调试(无IDE)

跨平台IDE编译调试C很方便&#xff0c;如QTCreate 、VSCode、Eclipse等&#xff0c;但是如果只能使用Shell控制台呢&#xff0c;gdb调试的优势就很明显了&#xff0c;在没有IDE的情况下&#xff0c;这个方式最有效。因为上手不是很难&#xff0c;特此整理 参考链接 目录 1、G…

光伏项目开发合作模式

光伏项目开发合作模式多种多样&#xff0c;根据应用场景的不同&#xff0c;主要分为户用光伏项目合作模式和工商业光伏项目合作模式。本文将分别介绍这两种模式的特点和常见形式&#xff0c;帮助大家更好地了解光伏项目开发的市场运作。 一、户用光伏项目合作模式 1.用户全款购…

笔记本电脑内存不够

笔记本电脑内存不够是众多笔记本用户面临的常见问题&#xff0c;尤其是对于一些需要处理大型文件或者运行复杂软件的用户&#xff0c;这个问题可能会严重影响笔记本的使用体验。那么&#xff0c;我们应该如何解决笔记本电脑内存不够的问题呢&#xff1f;本文将从几个方面进行详…

基于B/S架构+java语言+ 开发工具Idea,vscode医院产科信息管理系统源码 如何标准化对接技术及各个模块

基于B/S架构java语言 开发工具Idea,vscode医院产科信息管理系统源码 如何标准化对接技术及各个模块 医院产科信息管理系统&#xff1a;标准化对接是一个涉及多个方面的复杂过程&#xff0c;旨在通过数字化手段提升产科管理的效率与质量&#xff0c;实现孕产妇全周期的健康管理…

字节码编程javassist之增加异常捕获

写在前面 本文看下如何增加try catch异常捕获。 1&#xff1a;程序 需要增强的类&#xff1a; public class ApiTest1 {public Integer strToInt(String str01, String str02) {return Integer.parseInt(str01);}}插桩类 package com.dahuyou.javassist.huohuo.aa;import …

【数据结构】单链表:数据结构中的舞者,穿梭于理论与实践的舞池

欢迎来到白刘的领域 Miracle_86.-CSDN博客 系列专栏 数据结构与算法 先赞后看&#xff0c;已成习惯 创作不易&#xff0c;多多支持&#xff01; 一、链表的概念和结构 1.1 链表的概念 在上一篇文章中&#xff0c;我们了解了线性表(linear list)&#xff0c;并且学习了其…

Spring——IOC创建对象方式

可参考官网&#xff1a;https://docs.spring.io/spring-framework/reference/core/beans/dependencies/factory-collaborators.htmlhttps://docs.spring.io/spring-framework/reference/core/beans/dependencies/factory-collaborators.html 1. 使用无参构造创建对象&#xff0…

数据库性能优化系统设计

设计一个数据库性能优化系统&#xff0c;目标是监测、诊断并改善数据库的运行效率&#xff0c;确保系统能够高效稳定地处理大量数据请求。以下是一个概要设计&#xff0c;包括关键模块、功能和实现思路&#xff1a; 1. 系统架构 分布式监控中心&#xff1a;采用分布式架构收集…

PHP宝藏神器多功能投票系统源码小程序

&#x1f389;发现宝藏神器&#xff01;一键解锁“多功能投票小程序”的无限可能✨ &#x1f308; 开篇安利&#xff1a;告别繁琐&#xff0c;拥抱高效&#xff01; Hey小伙伴们&#xff0c;是不是经常为组织活动、收集意见而头疼不已&#xff1f;&#x1f92f; 今天就要给大…

Node 中基于 Koa 框架的 Web 服务搭建实战

前言 在《Node之Web服务 - 掘金 (juejin.cn)》一文中,我们使用 HTTP 模块构建了后端接口,从而实现了后端服务的开发。可以对此进行进一步优化 http模块代码回顾 const http require("http");const server http.createServer((req, res) > {if (reqUrl.pathna…

Python前沿技术:机器学习与人工智能

Python前沿技术&#xff1a;机器学习与人工智能 一、引言 随着科技的飞速发展&#xff0c;机器学习和人工智能&#xff08;AI&#xff09;已经成为了计算机科学领域的热门话题。Python作为一门易学易用且功能强大的编程语言&#xff0c;已经成为了这两个领域的首选语言之一。本…

【零基础】学JS

喝下这碗鸡汤 “知识就是力量。” - 弗朗西斯培根 1.三元运算符 目标:能利用三元运算符执行满足条件的语句 使用场景:其实是比if双分支更简单的写法&#xff0c;可以使用三元表达式 语法&#xff1a;条件 ? 满足条件的执行代码 : 不满足条件执行的代码 接下来用一个小案例来展…