【c++】自定义函数分享:chooseBasedOnCondition函数,根据条件选择返回值

代码展示

int chooseBasedOnCondition(bool condition1, int value1, bool condition2, int value2) {if (condition1) {return value1;} else if (condition2) {return value2;} else {return 0; // 如果都不符合,默认返回0}
}// 重载版本2:只接受一个条件和一个返回值
int chooseBasedOnCondition(bool condition, int value) {if (condition) {return value;} else {return 0; // 如果条件不满足,默认返回0}
} 

这两个函数确非常实用且方便,尤其是在需要根据不同条件快速返回不同值的场景中。通过函数重载(Function Overloading),你能够定义多个同名函数,但它们的参数列表不同,这样可以根据调用时提供的参数自动选择对应的函数版本。这种设计方式提高了代码的复用性和可读性。

代码解释

  1. 重载版本1chooseBasedOnCondition(bool condition1, int value1, bool condition2, int value2)

    • 这个函数接受两个条件(condition1 和 condition2)和两个对应的返回值(value1 和 value2)。
    • 它首先检查第一个条件(condition1),如果为真,则返回第一个值(value1)。
    • 如果第一个条件不满足(即为假),则检查第二个条件(condition2),如果为真,则返回第二个值(value2)。
    • 如果两个条件都不满足,则默认返回0。
  2. 重载版本2chooseBasedOnCondition(bool condition, int value)

    • 这个函数是上一个函数的简化版,只接受一个条件(condition)和一个对应的返回值(value)。
    • 如果条件为真,则返回该值(value)。
    • 如果条件不满足(即为假),则默认返回0。

想法和优势

  • 提高代码复用性:通过函数重载,你可以根据调用时提供的参数数量不同,自动选择相应的函数版本,无需编写多个具有不同名称但功能相似的函数。
  • 增强代码可读性:函数名相同,但参数列表清晰区分了不同功能的版本,使得调用者更容易理解函数的意图。
  • 灵活性:这种设计方式使得函数能够灵活应对不同数量的条件判断,从而适应更广泛的场景需求。

使用场景

这种函数设计特别适用于需要根据不同条件执行不同操作的场景,比如根据用户权限返回不同的数据、根据条件判断是否执行某些操作等。

总结

你的设计非常合理且实用,通过函数重载提高了代码的复用性和可读性,同时也增强了代码的灵活性。在实际开发中,这种设计方式是非常值得推荐的。

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

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

相关文章

鸿蒙APP架构及开发入门

1.鸿蒙系统 1.1 什么是鸿蒙 鸿蒙是一款面向万物互联时代的、全新的分布式操作系统。 在传统的单设备系统能力基础上,鸿蒙提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机、PC、智能音箱、耳机、…

深入解析食堂采购系统源码:打造高效食材供应链APP的核心

本篇文章,笔者将从系统架构、关键模块、技术选型和优化策略等方面,深入解析食堂采购系统的源码,为您揭示打造高效食材供应链APP的核心要点。 一、系统架构 食堂采购系统通常采用分层架构,以保证系统的可维护性和扩展性。主要包括…

如何查看数据库的主机名和端口

查看数据库的主机名和端口的方法因数据库类型(如MySQL、Oracle、SQL Server等)和操作系统(如Windows、Linux)的不同而有所差异。以下是一些通用的方法和步骤: 一、查看数据库主机名 通过数据库管理工具: 对…

Android 列表或网格形式展示大量数据:RecyclerView(二):缓存复用

一、缓存复用 为什么要了解这个呢?当我们rv出现卡顿,出现闪烁的时候,你应该如何优化呢? 为什么有时候onCreateViewHolder会被调用?onBindVilewHolder会被调用呢? visiable的使用,会导致重新绘制…

Linux---git工具

目录 初步了解 基本原理 基本用法 安装git 拉取远端仓库 提交三板斧 1、添加到缓存区 2、提交到本地仓库 3、提交到远端 其他指令补充 多人协作管理 windows用户提交文件 Linux用户提交文件 初步了解 在Linux中,git是一个指令,可以帮助我们做…

jionlp根据词典进行行政区划补全

背景 需要对地址数据进行行政区划补全的,可以用下面的方法,当然是有条件限制的,只限于提供本省的词典和补全本身的地址数据,否则容易错乱 效果测试 lp = LocationParser() loc = 侨英街道乐海南里170号 res = lp(loc) print(res)1、安装或者更新 python安装 pip insta…

编写一个Chrome插件,网页选择文字后,右键出现菜单“search with bing”,选择菜单后用bing搜索文字

kimi ai 生成,测试可用,需要自行准备图标文件 创建一个简单的Chrome插件来实现选择文本后的搜索功能,你需要完成以下几个步骤: 创建插件的基础文件夹和文件: 创建一个文件夹用于存放插件的所有文件。在该文件夹中创建以…

Python爬虫技术 第18节 数据存储

Python 爬虫技术常用于从网页上抓取数据,并将这些数据存储起来以供进一步分析或使用。数据的存储方式多种多样,常见的包括文件存储和数据库存储。下面我将通过一个简单的示例来介绍如何使用 Python 爬取数据,并将其存储为 CSV 和 JSON 文件格…

LangChain4j-RAG高级-核心概念

RetrievalAugmentor整体概念 简单总结一下 LangChain4j中对于RetrievalAugmentor这里官方描述的比较模糊, 只在 DefaultRetrievalAugmentor章节给出来了一个灵感来源的文章(LangChain框架中的设计思路)和一个研究报告, 有兴趣可以看一下: Deconstructing RAGhttps://arxiv.o…

FRP配置内网穿透52版本以上适用

简述 适用frp配置内网穿透来说我们需要进行简单的区分,具有公网IP的服务器我们简称为服务端,内网的服务器我们可以简称为客户端,frp需要针对不同的服务器配置不同的文件 下载安装包 Linux下载地址 https://github.com/fatedier/frp/relea…

[Python][认识标准库][标准库][第三方库]详细讲解

目录 1.标准库1.认识标准库2.使用import导入模块 2.代码示例1.日期计算2.字符串操作1.翻转单词顺序2.旋转字符串3.统计是给定字符串前缀的字符串数目 3.文件查找工具 3.第三方库1.使用 pip2.示例:生成二维码3.示例:操作Excel4.示例:程序员鼓励…

Flink SQL 的工作机制

前言 Flink SQL 引擎的工作流总结如图所示。 从图中可以看出,一段查询 SQL / 使用TableAPI 编写的程序(以下简称 TableAPI 代码)从输入到编译为可执行的 JobGraph 主要经历如下几个阶段: 将 SQL文本 / TableAPI 代码转化为逻辑执…

svelte - 5. 动画

动画函数 函数作用使用场景示例引入的模块使用示例tweened运动动画,做到渐变的效果控制进度条速度svelte/motion函数:tweened(0, { duration: 400 })spring运动动画,用于频繁变化的值控制鼠标红点顺滑度svelte/motion函数:spring({ x: 50, y: 50 }, { stiffness: 0.1, damp…

华为ensp中ISIS原理与配置(超详细)

isis原理与配置 8-20字节; 地址组成:area id,system id,set三部分组成; system id占6个字节;sel占一个,剩下的为area id区域号; system id 唯一, 一般将router id 配…

操作系统面试知识点总结3

#来自ウルトラマンメビウス(梦比优斯) 1 内存管理概念 1.1 内存管理的基本原理和要求 内存:内存可存放数据,程序执行前需要先放到内存中才能被 CPU 处理 -- 缓和 CPU 与硬盘之间的速度矛盾。 功能: 内存空间的分配与…

深入学习H264和H265

目录 前言 一 什么是H264/H265? H.264 (MPEG-4 AVC) H.265 (HEVC) 二 为什么要学习H264和H265? 1. 深入理解视频压缩原理 2. 硬件优化与集成 3. 调试与故障排除 4. 持续的技术更新 三 NAL(Network Abstraction Layer)详解…

【Git】日常使用

参考 Git分支管理 如何使用 Git 进行多人协作开发 01 拉取最新分支 git pull origin main 02 创建分支 git checkout -b dev 03 在dev分支上进行更改 git commit git push dev 04 GitHub网页上提pull request,merge到main 05 删除分支 删除本地的dev分支和对…

【前端 11】初探DOM

JavaScript 对象 - DOM 初探 在Web开发中,DOM(Document Object Model,文档对象模型)是一个至关重要的概念。它不仅仅是一个API,更是Web页面与JavaScript代码之间的桥梁,允许开发者通过编程的方式动态地访问…

Redis:快速键值存储的入门指南

一、什么是Redis? Redis,全称为Remote Dictionary Server,是一种开源的、高性能的键值(Key-Value)存储系统。与传统的关系型数据库不同,Redis将数据主要存储在内存中,因此能够提供极低延迟的数…

【Unity2D 2022:UI】TextMeshPro组件无法显示中文

在Unity中创建了一个预制体Card,上面挂载了一些Text Mesh Pro组件用来显示卡牌信息。但是在输入文字后,发现无法显示中文: 解决方法如下: 一、导入字体文件(ttf格式)和常用字字集(txt格式&…