c++初级--->namespace关键字,输入输出,缺省参数,函数重载

news/2024/11/15 0:52:19 标签: c++, 开发语言

1.namespace关键字:

namespace关键字是用于生成一个命名空间,这个空间中可以定义变量,函数,通过这个关键字,可以解决函数在文件展开的时候会因为引用头文件中有相同的变量名而导致的报错;

举例验证:你在main函数外定义一个rand这个变量,然后去运行,就会产生重定义报错。

如何使用这个命名空间呢?

首选你需要给上

namespace kai {
    int i = 1;
}

这样的一个代码,需要注意的是,不需要在}后面加“;”,但是,如果只是这么定义,那么你还是无法使用这个空间中的i。

那该如何使用呢?

有两种方式:1.在main函数前加using namespace kai;这样是可以使用全部的;

                      2.如果只是想使用其中的部分则需要加上的是using  kai::i;

小补充:1.c++标准库(后续输入输出)相关函数都放在一个叫std的命名空间中

                2.定义相同名字的命名空间编译器会自动帮助我们进行合并


2.输入与输出(已经using namespcae std)

1.首先需要添加头文件 <iostream>(注意,可以不用加.h)

2.1输出

2.1.1首先介绍与printf有何不同,这个输出可以自动处理类型,解决了printf需要各种设置%s%d的麻烦行为。例如:

2.1.2使用:

正如上图所示就是使用cout<<(这里是要输出的东西), 后面的<<endl实际上就是输出了一个空格。

2.2输入:

2.2.1这里在输入字符的时候,不再需要加上&,如果加上的话是会报错的

2.2.2运用:

(值得注意的是,iostream包含后不使用stdio.h也是可以使用printf和scanf的)


3.缺省参数

c++支持缺省参数的使用(只分为全缺省和半缺省)

就是可以给函数预先设定一些初始值

例如:

int add(int a, int b = 1) {
    return a + b;
}

但是需要注意的是,给半缺省的时候,只能从右往左给,但是在调用的时候,不给参数的话只能从左向右给,不能出现这种(a=1,b,c=1)(a=1,b,c)均是有问题的。例子如下:


4.函数重载,c++支持函数重载,也就是同名函数可以多次定义,但是要注意的是定义的同名函数需要参数不同(个数,类型),不能是返回值类型不同。例子如下:


http://www.niftyadmin.cn/n/5752518.html

相关文章

逐行加载 HTML 内容并实时显示效果:使用 wxPython 的实现

这篇博客中&#xff0c;我们将详细分析如何使用 wxPython 构建一个简单的桌面应用程序&#xff0c;用于逐行加载并显示 HTML 文件的内容&#xff0c;并在加载完成后通过浏览器组件呈现最终页面。通过该应用&#xff0c;我们可以体验到逐行加载 HTML 内容的视觉效果&#xff0c;…

Golang | Leetcode Golang题解之第563题二叉树的坡度

题目&#xff1a; 题解&#xff1a; func findTilt(root *TreeNode) (ans int) {var dfs func(*TreeNode) intdfs func(node *TreeNode) int {if node nil {return 0}sumLeft : dfs(node.Left)sumRight : dfs(node.Right)ans abs(sumLeft - sumRight)return sumLeft sumRi…

【MySQL】数据库必备知识:全面整合表的约束与深度解析

前言&#xff1a;本节内容讲述表的约束的相关内容。 表的约束博主将会通过两篇文章进行讲解&#xff0c; 这是第一篇上半部分。 讲到了约束概念。 以及几种常见约束。下面友友们开始学习吧&#xff01; ps:友友们使用了mysql就可以放心观看喽&#xff01; 目录 表的约束概念 …

C语言 | Leetcode C语言题解之第559题N叉树的最大深度

题目&#xff1a; 题解&#xff1a; /*** Definition for a Node.* struct Node {* int val;* int numChildren;* struct Node** children;* };*/int maxDepth(struct Node* root) {if (!root) {return 0;}int depth 0;// 创建空队列const int qCap 10e4 1;str…

MaxKB

docker 安装 MaxKB docker run -d --namemaxkb --restartalways -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data -v ~/.python-packages:/opt/maxkb/app/sandbox/python-packages cr2.fit2cloud.com/1panel/maxkbdocker psCONTAINER ID IMAGE …

构建现代 Python Web 应用的最佳实践:从 FastAPI 到 Tortoise ORM20241113

构建现代 Python Web 应用的最佳实践&#xff1a;从 FastAPI 到 Tortoise ORM 随着现代 Web 开发技术的快速演进&#xff0c;Python 的生态系统涌现出了诸多优秀的框架和工具&#xff0c;FastAPI 和 Tortoise ORM 就是其中的佼佼者。这篇博客将围绕如何使用这两款工具构建高效、…

鸿蒙 入门——ArkUI 自定义组件间的“后代“双向同步@Provide和@Consume装饰器小结(五)

文章大纲 引言一、Provide和Consume装饰器概述1、Provide和Consume关系的绑定2、使用规则3、变量的传递/访问规则4、支持的观察变化的场景5、Provide和Consume变量的值初始化和更新机制5.1、初始渲染5.2、当Provide装饰的数据变化时&#xff1a;5.3、当Consume装饰的数据变化时…

18 为什么这些SQL语句逻辑相同,性能却差异巨大?

Hello&#xff01;欢迎各位新老朋友来看小弟博客&#xff0c;祝大家事业顺利&#xff0c;财源广进&#xff01;&#xff01; 在 MySQL 中&#xff0c;有很多看上去逻辑相同&#xff0c;但性能却差异巨大的 SQL 语句。对这些语句使用不当的话&#xff0c;就会不经意间导致整个数…