初识C++(命名空间、缺省参数)

初识C++

  • 命名空间
    • namespace关键字
    • 命名空间的使用
  • 缺省参数

命名空间

namespace关键字

在C++中,为了尽可能避免命名冲突,需要对各个变量进行域作用限定,这就需要使用到namespace关键字,namespace可以定义一个命名空间,即命名空间域,而这个域与全局域是相互独立的,不同的域可以定义同名变量,从而避免命名冲突
例:

//h 是命名空间的名字
//这里需要注意区分,命名空间定义的括号最后不需要加分号,而结构体需要
namespace h
{int a = 10;//在命名空间中定义变量//在命名空间中定义函数int ADD(int x, int y){return x + y;}//在命名空间中定义结构体struct stu{//......};//命名空间可以嵌套定义namespace w{//......}
}

需要注意的是,C++的标准库都存放在 std 这一命名空间中

命名空间的使用

命名空间的使用有三种方式

  1. 指定命名空间访问,这里需要用到一个操作符 :: ,这是域作用限定符,在项目中一般推荐使用这种方式,例:
int main()
{int a = 20;cout << "main函数中的a: " << a << endl;cout << "命名空间中的a: " << h::a << endl;//这里采用了上例中的 areturn 0;
}

输出结果如下
在这里插入图片描述

  1. 使用using将命名空间中的某个成员展开,这样方便直接使用,例:
//使用using将h中的a变量展开
using h::a;int main()
{int b = 20;cout << "main函数中的a: " << b << endl;cout << "命名空间中的a: " << a << endl;//此时可以直接访问return 0;
}

结果如下:
加粗样式

3.使用using将命名空间全部展开,即

using namespace h;

这种方式容易导致命名冲突,项目中一般不推荐

缺省参数

缺省参数是指在函数声明或定义是为参数指定一个初始值,在调用函数时,如果没有指定参数值便默认为缺省值,缺省参数分为全缺省与半缺省,例:

//全缺省
void F(int x = 10 , int y = 10)
{cout << x + y << endl;
}int main()
{F(0);//此时给x赋值为0F();//x,y均采用缺省值return 0;
}

输出结果如下:
在这里插入图片描述

//半缺省
void F(int x, int y = 10)
{cout << x + y << endl;
}int main()
{F(0,15);//此时给x赋值为0,y为15F(0);//x赋值为0,y采用缺省值return 0;
}

输出结果如下:
在这里插入图片描述

注意

  1. C++规定在半缺省时只能从右往左缺省,不能跳跃间隔缺省,赋值时只能从左往右赋值,不能跳跃赋值
  2. 函数声明和定义分开时只能在声明中缺省,不能在定义中进行缺省

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

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

相关文章

LabVIEW红外热波图像缺陷检

开发使用LabVIEW开发的红外热波图像缺陷检测系统。该系统结合红外热像仪、工业相机和高效的数据采集硬件&#xff0c;实现对工件表面缺陷的自动检测和分析。通过LabVIEW的强大功能&#xff0c;系统能够实时采集、处理和显示红外热波图像&#xff0c;有效提高了检测的精度和效率…

vue:标签属性绑定Vue实例【ref,reactive,内置指令v-bind,v-on】,预定义变量、方法【$methods,$computed】

Vue2、3组件通信、双向绑定、插槽slot、内置指令_组件双向绑定-CSDN博客​Vue2&#xff0c;3响应式原理&#xff0c;ref和reactive&#xff0c;toRef和toRefs&#xff0c;shallowRef和shallowRefs_vue2 shallowref-CSDN博客 vue2【Options 选项API、mixin混入】&#xff0c;vu…

WAF基础介绍

WAF 一、WAF是什么&#xff1f;WAF能够做什么 二 waf的部署三、WAF的工作原理 一、WAF是什么&#xff1f; WAF的全称是&#xff08;Web Application Firewall&#xff09;即Web应用防火墙&#xff0c;简称WAF。 国际上公认的一种说法是&#xff1a;Web应用防火墙是通过执行一…

免开steam 脱离steam 进行游戏的小工具

链接&#xff1a;https://pan.baidu.com/s/1k2C8b4jEqKIGLtLZp8YCgA?pwd6666 提取码&#xff1a;6666 我们只需选择游戏根目录 然后输入AppID 点击底部按钮 进行就可以了 关于AppID在&#xff1a;

机器学习——L1 L2 范数 —>L1 L2正则化

1、L1范数和L2范数是机器学习和数据分析中经常使用的两种范数&#xff0c;它们之间存在多个方面的区别。 以下是关于L1范数和L2范数区别的详细解释&#xff1a; 一、定义差异 L1范数&#xff1a;也被称为曼哈顿范数&#xff0c;是向量元素的绝对值之和。对于一个n维向量x&am…

酒店管理系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;酒店管理员管理&#xff0c;房间类型管理&#xff0c;房间信息管理&#xff0c;订单信息管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;房间信息…

Linux介绍与常用命令详解

目录 一、Linux概述 1.Linux发行版 2.Linux目录结构 二、Linux特点 三、Linux用途 四、Linux常用的命令 1.cd指令&#xff08;跳转位置&#xff09; 2.显示目录文件 3.对文件进行操作 4.rm指令&#xff08;删除文件夹指令&#xff09; 5.mv指令 6.查看文件命令 7.进程命令…

【云岚到家】-day05-6-项目迁移-门户-CMS

【云岚到家】-day05-6-项目迁移-门户-CMS 4 项目迁移-门户4.1 迁移目标4.2 能力基础4.2.1 缓存方案设计与应用能力4.2.2 静态化技术应用能力 4.3 需求分析4.3.1 界面原型 4.4 系统设计4.4.1 表设计4.4.2 接口与方案4.4.2.1 首页信息查询接口4.4.3.1 数据缓存方案4.4.3.2 页面静…

力扣678.有效的括号字符串

力扣678.有效的括号字符串 用两个栈分别存’ ( ‘和‘ * ’的下标 ‘ ) ’ 与二者匹配最后将‘ ( ’与 ‘ * ’匹配 class Solution {public:bool checkValidString(string s) {stack<int> st1,st2;int n s.size();for(int i0;i<n;i){char c s[i];if(c ()st1.pus…

宪法学学习笔记(个人向) Part.5

宪法学学习笔记(个人向) Part.5 4. 公民基本权利和义务 4.1 公民&#x1f338; 概念 是指具有某个国家国籍的自然人&#xff1b; 【拓展】国籍&#xff1a;在宪法上是指一个人隶属于某个国家的法律上的身份&#x1f338; &#xff1b; 取得方式 出生国籍 因出生而获得的国籍&a…

Ubuntu20.04 编译安装FFmpeg,出错分析以及解决方案

最近工程上需要对FFmpeg底层源码进行修改&#xff0c;需要重新编译&#xff0c;遇见不少坑&#xff0c;出篇教程记录一下。 文章目录 1.FFmpeg源码下载地址2.编译环境配置3.编译FFmpeg4.配置FFmpeg运行环境 1.FFmpeg源码下载地址 官方下载地址:Index of /releases (ffmpeg.or…

Java | Leetcode Java题解之第232题用栈实现队列

题目&#xff1a; 题解&#xff1a; class MyQueue {Deque<Integer> inStack;Deque<Integer> outStack;public MyQueue() {inStack new ArrayDeque<Integer>();outStack new ArrayDeque<Integer>();}public void push(int x) {inStack.push(x);}pub…

springboot1——快速构建项目

需求 第一步&#xff1a;创建maven工程(非web项目) 第二步&#xff1a;导入起步依赖 点击&#xff1a; 下拉复制&#xff1a; 粘贴&#xff1a;&#xff01;&#xff01;这是springboot工程需要继承的父工程 下拉复制&#xff1a; 粘贴&#xff1a;&#xff01;&#xf…

Python实现一对多WebSocket发送给指定多个客户端

在一对多的WebSocket场景下&#xff0c;如果你想要向特定的多个客户端发送消息&#xff0c;而不是广播给所有客户端&#xff0c;你需要维护一个能够标识每个客户端的方式&#xff0c;比如使用用户名或者客户端ID。这样&#xff0c;你就可以根据需要选择向哪些客户端发送消息。 …

Nodejs 第八十章(Kafka高级)

kafka前置知识在前几章章讲过了 不再复述 Kafka集群操作 1.创建多个kafka服务 拷贝一份kafka完整目录改名为kafka2 修改配置文件 kafka2/config/server.properties 这个文件 broker.id1 //唯一broker port9093 //切换端口 listenersPLAINTEXT://:9093 //切换监听源启动zooKe…

Rust编程-函数式编程

函数式编程&#xff1a; 函数式风格编程通常包括将函数当作参数、将函数作为其他函数的返回值或将函数赋给变量以备之后执行等。 闭包&#xff1a; 一个类似函数&#xff0c;并且可以存储在变量中的结构。闭包拥有很好的运行性能。 闭包可以存入变量或作为参数传递给其他函数的…

常见问题记录(持续更新)

备注&#xff1a; 在7月10日记录之前遇到的问题及解决方法: 一&#xff1a;常见的访问问题&#xff1a; 403 Forbidden&#xff1a;&#xff08;未有请求权限&#xff09; 表示服务器理解请求但是拒绝执行它。这通常是由于服务器上的文件或资源没有正确的读、写或执行权限&…

python接口自动化(二十四)--unittest断言——中(详解)

1.简介 上一篇通过简单的案例给小伙伴们介绍了一下unittest断言&#xff0c;这篇我们将通过结合和围绕实际的工作来进行unittest的断言。这里以获取城市天气预报的接口为例&#xff0c;设计了 2 个用例&#xff0c;一个是查询北京的天气&#xff0c;一个是查询 南京为例&#…

[MySQL][数据类型]详细讲解

目录 1.说明1.数据类型分类2.数值类型1.int类型2.bit类型3.浮点数类型1.float2.decimal 3.字符串类型1.char2.varchar3.char和varchar比较 4.日期和时间类型5.enum和set1.基本语法2.查询数据 1.说明 MySQL表中建立属性列&#xff0c;列名称 类型 num tinyint unsigned;与C/C语…

高级java每日一道面试题-2024年7月14日

面试官: 你对java反射了解多少 我回答 什么是java反射&#xff1a; Java反射机制是一种强大的运行时自省机制&#xff0c;允许程序在运行时检查和操作类、接口、构造器、方法和字段等类型信息。通过反射&#xff0c;Java程序可以在运行时动态地加载类、创建对象、调用方法、…