缺省参数,函数重载,引用的使用(C++)

news2024/12/29 15:55:44

前言

本文主要讲解的是缺省参数,函数重载,引用的使用.

文章目录

  • 目录

    前言

    一、缺省参数是什么?

    1.缺省参数的分类

    二、函数重载是什么?

    三、引用是什么?

    1.引用特性 

    总结


提示:以下是本篇文章正文内容,下面案例可供参考

一、缺省参数是什么?

缺省函数是在声明或定义的时候指定参数缺少指定的一个值

 代码如下(示例):

#include <iostream>
using namespace std;
void f()
{
	cout << "f()" << endl;

}
void f(int a)
{
	cout << "f(int a)" << endl;
}
int main()
{
	int a = 0;
	f();
	f(a);
	return 0;
}

结果如下: 

1.缺省参数的分类

1.全缺省参数

#include <iostream>
using namespace std;
void f(int a=10,int b=20,int c=30)
{
	cout << a+b+c << endl;
}

int main()
{
	int x = 0;
	int y = 0;
	int z = 10;
	f();
	return 0;
}

结果如下:

2.半缺省参数

#include <iostream>
using namespace std;

void f(int x,int y=10,int z=10)
{
	cout << x+y+z << endl;
}
int main()
{
	int x = 0;
	int y = 0;
	int z = 10;
	f(x);
	return 0;
}

结果如下 :

 注意:

  1. 半缺省必须从右到左的给出来
  2. 缺省参数不能在函数声明和定义同时出现
  3. 缺省值必须为局部或全局

二、函数重载是什么?

在同一个作用域中可以同时存在相同的函数名,但这些的相同函数名的形参列表不同(如:参数个数不同,类型不同,类型顺序不同).

代码如下(示例):

void f(int a, int b, int c)
{
	cout << a << endl;
	cout << b << endl;
	cout << c << endl;
}
void f(double a = 11.1, int b = 10, int c = 120)
{
	cout << a << endl;
	cout << b << endl;
	cout << c << endl;
}
int main()
{
	int x = 0;
	int y = 0;
	int z = 10;
	f(x,y,z);
	f();
	return 0;
}

结果:

注意: 

        1.不用定义含糊不清的形参

  1. void f(int a=10)
    {
    	cout << a << endl;
    }
    void f()
    {
    	cout << "hello world" << endl;
    }
    int main()
    {
    
    	f();
    	f();
    	return 0;
    }

 三、引用是什么?

引用是再给一个定义好的变量再取一个名,但是他们共用一个内存空间.

使用方法:

类型 & 变量名=引用实体; 

1.引用特性 

  1. 引用前必须初始化
  2. 一个变量可以有多个引用
  3. 引用的名与定义名形同会冲突
int main()
{
	int x = 0;
	int& y = x;
	int& z = y;
	cout << x << endl;//0
	y = 10;
	cout << x << endl;//10
	z = 20;
	cout << x << endl;//20
	return 0;
}

结果:

 


 

总结

本文主要讲解的是缺省参数,函数重载,引用的使用.讲的很浅没有深入讲解

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

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

相关文章

java中的NIO,BIO,AIO

IO&#xff0c;input和output&#xff0c;Java 为 I/O 提供了强大的而灵活的支持&#xff0c;使其更广泛地应用到文件传输和网络编程中。 IO是什么&#xff1f;为什么需要IO&#xff1f; java在1.4之前&#xff0c;提供的是BIO&#xff0c;也就是java.io包下的的东西&#xf…

SpringBoot(二):配置文件的作用、配置文件的格式、properties配置文件、yml配置文件

目录一、配置文件的作用二、配置文件的格式三、properties配置文件3.1 properties的基本语法3.2 properties的缺点3.3 配置自定义内容3.4 读取配置文件四、yml配置文件4.1 yml基本介绍4.2 yml基本语法4.3 使用yml配置不同的数据类型4.4 读取yml配置文件4.5 在yml中配置对象4.6 …

关于UWB汽车钥匙介绍

汽车钥匙经历了机械钥匙、遥控钥匙、PEPS、数字钥匙四个阶段&#xff0c;而数字钥匙又分为BLE/NFC/UWB三种技术路线。由于UWB安全性、定位精度、作用范围明显好于BLE和NFC&#xff0c;因此成为汽车数字钥匙的最优技术。PEPS与数字钥匙PEPS是指无钥匙进入/无钥匙启动系统&#x…

MySQL详解(三)——高级 1.0

MySQL高级 utf8只支持每个字符最多三个字节&#xff0c;而真正的 UTF-8 是每个字符最多四个字节 MySQL 的这个bug一直没有被修复&#xff0c;他们在 2010 年发布了一个叫作“utf8mb4”的字符集&#xff0c;绕过了这个问题。 MySQL优点 Mysql是开源的Mysql是可以定制的&…

CDN的那些事

CDN的那些事一、前言二、基础配置三、访问控制四、缓存配置五、HTTPS配置六、高级配置&#xff08;最重点来了&#xff09;七、结语一、前言 大家好&#xff0c;我是尝试中成长的站长&#xff0c;前段时间&#xff0c;群友的cdn被刷爆了&#xff0c;这就引起了我的恐慌&#x…

读书笔记:神经网络加法层与乘法层的实现及应用 buy_apple_orange.py ← 斋藤康毅

“层”是神经网络中功能的单位。通常把神经网络的“层”实现为一个类。“层”的实现中有两个共通的方法 forward() 和 backward()。forward() 对应正向传播&#xff0c;backward() 对应反向传播。加法结点的反向传播将上游的值原封不动地输出到下游&#xff0c;乘法结点的反向传…

第2章:使用CSS定义样式

在前一章中,我们研究了Java代码的不同片段。 在本章中,我们将对每个示例使用相同的代码段: public void createPdf(String html, String dest) throws IOException {HtmlConverter.convertToPdf(html, new FileOutputStream(dest)); } 我们不看Java代码的不同片段,而是看…

数据分析-深度学习Pytorch Day13

单层感知机和多层感知机(MLP)是最基础的神经网络结构。将卷积操作创新的加入到神经网络结构形成了卷积神经网络&#xff0c;卷积神经网络给现代人工智能注入了活力。感知机网络和卷积网络(CNN)都属于前馈型网络(FeedForward Network)。单层感知机是二分类的线性分类模型&#x…

MT1010-M1016(java版)

MT1010输入和输出字符型数据难度&#xff1a;青铜0时间限制&#xff1a;1秒巴占用内存&#xff1a;64M★收藏△报错请编写一个简单程序&#xff0c;用户输入2个的字符型数据存储在变量中&#xff0c;并分别以字符形式和整数形式输出在屏幕上。格式输入格式&#xff1a;2个的字符…

Go语言DDD实战初级篇

导读 领域驱动设计(DDD)最简洁的描述可能是&#xff1a;如何在明确的限界上下文中创建通用语言的模型。通过 DDD思想设计开发的软件&#xff0c;在领域专家、开发者和软件本身之间不存在“翻译”&#xff0c;三者通过在限界上下文下的通用语言直接表示。而这个系列则是我们团队…

交换机——VLAN原理和基本配置

VLAN原理和配置VLAN的三种端口类型Access&#xff1a;接入链路类型&#xff08;一般使用&#xff1a;交换机与PC&#xff09;Trunk&#xff1a;干道链路类型&#xff08;一般使用&#xff1a;交换机与交换机&#xff09;Hybrid在这里&#xff0c;我们只使用和讲解Access和Trunk…

HTML简介

目录 一、HTML基础知识 二、HTML常见标签 注释标签 标题标签 段落标签 常用的转义字符 换行标签 格式化标签 图片标签 超链接标签 表格标签 列表标签 input标签 文本框 密码框 单选框 复选框 普通按钮 选择文件 下拉标签 多行文本输入 无语…

【哈希表】leetcode454.四数相加II(C/C++/Java/Python/Js)

leetcode454.四数相加II1 题目2 思路3 代码3.1 C版本3.2 C版本3.3 Java版本3.4 Python版本3.5 JavaScript版本4 总结需要哈希的地方都能找到map的身影 1 题目 题源链接 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少…

C中线程信号控制

一、场景介绍存在三个线程&#xff0c;一个主线程和两个子线程&#xff08;子线程数量不固定&#xff09;。为了节省频繁创建销毁线程造成的资源浪费&#xff0c;将这些线程设置为常驻线程。但这样引入了一个新的问题&#xff0c;如何协调这些线程完成工作。主线程内是循环检测…

Webgl实现的天气效果(下雨、下雪)

一、下雨效果如图&#xff1a; 还有一种雨水效果也不错 114 Three.js实现深度遮挡的下雨特效 | 暮志未晚-中文案例网 二、下雪的效果 57 Three.js 使用粒子实现下雪特效 | 暮志未晚-中文案例网 还有一种是通过网页CSS的形式做的2D雪效果 集合在一起的源码&#xff1a; https…

编译原理学习笔记17——语义分析和中间代码生成2

编译原理学习笔记17——语义分析和中间代码生成217.1 赋值语句的翻译17.2数组元素引用的翻译17.3 类型转换17.1 赋值语句的翻译 简单算术表达式及赋值语句 赋值语句生成三地址代码的S-属性文法 赋值语句生成三地址代码的S-属性文法 产生赋值语句三地址代码的翻译模式 产…

你真的了解工厂设计模式吗?(简单工厂模式+工厂方法模式+抽象工厂模式)

工厂解决的问题 客户端在调用是不想判断实例化哪一个类或者实例化的过程过于复杂。在工厂模式中&#xff0c;具体的实现类创建过程对客户端是透明的&#xff0c;客户端不决定具体实例化哪一个类&#xff0c;而是交由“工厂”来实例化。 简单工厂模式 类图 简单工厂模式由三类…

Git GitHub纯新手入门教程

参考视频&#xff1a;Github 新手够用指南 | 全程演示&个人找项目技巧放送_哔哩哔哩_bilibili40 分钟学会 Git | 日常开发全程大放送&个搭配GitHub_哔哩哔哩_bilibiliGit和GitHub分别是什么Git是一个运行在电脑上的版本控制软件&#xff08;保存代码各个阶段历史记录的…

在使用定时器过程中存在的那些陷阱

在使用定时器的过程中&#xff0c;如果你不了解定时器的一些细节&#xff0c;那么很有可能掉进定时器的一些陷阱里&#xff0c;函数 setTimeout 在时效性上面有很多先天的不足&#xff0c;所以对于一些时间精度要求比较高的需求&#xff0c;应该有针对性地采取一些其他的方案 …

【回眸】牛客网刷刷刷(四)软件工程(续)ZooKeeper字符串链表(专题)

前言 本篇博客为笔者刷客观笔试题时做的一些记录以供以后复习时翻阅&#xff0c;如果能够帮到您是最大的荣幸&#xff01;如果能给笔者一个三连将感激不尽&#xff01; 知识点串烧 软件工程专题&#xff08;续上篇&#xff09; 有一些可维护特性是相互促进的&#xff0c;如…