当前位置: 首页 > news >正文

C++学习Day08之函数模板和普通函数的区别以及调用规则

目录

  • 一、程序及输出
    • 1.1 区别
      • 1.1.1 自动类型推导,不可以发生隐式类型转换的
      • 1.1.2 普通函数 可以发生隐式类型转换
    • 1.2 调用规则
  • 二、分析与总结


一、程序及输出

1.1 区别

1.1.1 自动类型推导,不可以发生隐式类型转换的

在这里插入图片描述

1.1.2 普通函数 可以发生隐式类型转换

#include<iostream>
using namespace std;//1、函数模板和普通函数的区别
template<class T>
T myAdd(T a , T b)
{return a + b;
}int myAdd2(int a, int b)
{return a + b;
}
void test01()
{int a = 10;int b = 20;char c = 'c';//myAdd(a, c); //如果使用自动类型推导,是不可以发生隐式类型转换的cout << myAdd2(a, c) << endl; //普通函数 可以发生隐式类型转换
}int main(){test01();system("pause");return EXIT_SUCCESS;
}

输出:
c的ASCII值为99,99+10=109
在这里插入图片描述

1.2 调用规则

如果函数模板和普通函数都可以调用,那么优先调用普通函数
如果想强制调用函数模板,可以使用空模板参数列表
函数模板也可以发生函数重载
如果函数模板能产生更好的匹配,那么优先使用函数模板

#include<iostream>
using namespace std;
template<class T>
void myPrint(T a ,T b)
{cout << "函数模板调用" << endl;
}
template<class T>
void myPrint(T a, T b ,T c)
{cout << "函数模板(T a, T b ,T c)调用" << endl;
}void myPrint(int a, int b)
{cout << "普通函数调用" << endl;
}
void test02()
{//1、如果函数模板和普通函数都可以调用,那么优先调用普通函数int a = 10;int b = 20;myPrint(a, b);//2、如果想强制调用函数模板,可以使用空模板参数列表myPrint<>(a, b);//3、函数模板也可以发生函数重载myPrint(a, b, 10);//4、如果函数模板能产生更好的匹配,那么优先使用函数模板char c = 'c';char d = 'd';myPrint(c, d);
}
int main(){test02();system("pause");return EXIT_SUCCESS;
}

二、分析与总结

函数模板与普通函数区别:
如果使用自动类型推导,是不可以发生隐式类型转换的
普通函数 可以发生隐式类型转换
调用规则
如果函数模板和普通函数都可以调用,那么优先调用普通函数
如果想强制调用函数模板,可以使用空模板参数列表
函数模板也可以发生函数重载
如果函数模板能产生更好的匹配,那么优先使用函数模板

相关文章:

C++学习Day08之函数模板和普通函数的区别以及调用规则

目录 一、程序及输出1.1 区别1.1.1 自动类型推导&#xff0c;不可以发生隐式类型转换的1.1.2 普通函数 可以发生隐式类型转换 1.2 调用规则 二、分析与总结 一、程序及输出 1.1 区别 1.1.1 自动类型推导&#xff0c;不可以发生隐式类型转换的 1.1.2 普通函数 可以发生隐式类型…...

Kaggle实践之《Home Credit Default Risk》的逐步优化

记录下每一次的改进及其score。 1、只用训练集的特征简单处理 特征只用训练集的特征&#xff0c;把string型的特征全部进行one-hot转化&#xff0c;然后随机1:4分成测试集训练集&#xff0c;模型也调参直接出结果。 最终的score是训练集80.13%、验证集76.33%、线上74.28%。 …...

django rest framework 学习笔记-实战商城2

01收货地址模型类和视图定义_哔哩哔哩_bilibili 本博客借鉴至大佬的视频学习笔记 地址信息的管理&#xff1a;增删改查的实现 # 序列化器配置 class AddrSerializer(serializers.ModelSerializer):"""收货地址的模型序列化器"""class Meta:mo…...

WEB 3D技术 three.js 3D贺卡(4) 添加鼠标滚轮移动屏幕 改变贺卡文字功能

好&#xff0c;上文 WEB 3D技术 three.js 3D贺卡(3) 点光源灯光动画效果 那么 我们来做一下 鼠标滚动相机和滚动时不同文字的切换 首先 我们要设置多个场景 其实也不能完全叫场景 也可以说多个位置 反正简单说就是多个位置 展现多个场景 我们先在代码的最下面 加上一个对象数…...

爬虫在网页抓取的过程中可能会遇到哪些问题?

在网页抓取&#xff08;爬虫&#xff09;过程中&#xff0c;开发者可能会遇到多种问题&#xff0c;以下是一些常见问题及其解决方案&#xff1a; 1. IP封锁&#xff1a; 问题&#xff1a;封IP是最常见的问题&#xff0c;抓取的目标网站会识别并封锁频繁请求的IP地址。 解决方案…...

Eclipse中Run As On Server和Run As Java Application

一、名词释义 run java application &#xff08;作为Java应用程序运行&#xff09;是运行 java main方法。 run on server是启动一个web 应用服务器。 二、两者的区别 Eclipse中可以创建java project 也可以创建java web poject 。java project是可以直接在命令行运行,或者…...

【MySQL】库的操作——MySQL数据库 、库的操作、表的操作、字符集和校验规则、备份和恢复

文章目录 MySQL1. 库的操作2. 表的操作3. 字符集和校验规则3.1 查看系统默认字符集以及校验规则3.2 查看数据库支持的字符集3.3 查看数据库支持的字符集校验规则 4. 备份和恢复4.1 备份4.2 还原 MySQL 1. 库的操作 连接服务器 mysql -h 127.0.0.1 -P 3306 -u root -pmysql -u…...

pytorch 用F.normalization的逆归一化如何操作

逆归一化的时候再把这个数乘回去就行了 magnitude a.norm(p2, dim1, keepdimTrue) # NEW atorch.nn.functional.normalize(a, p2, dim1) a_or a* magnitude # NEW print(a_or) Outputs: tensor([]1,2,3)...

LabVIEW多通道压力传感器实时动态检测

LabVIEW多通道压力传感器实时动态检测 介绍了一种基于LabVIEW的多通道压力传感器实时动态检测系统&#xff0c;解决压阻式压力传感器温度补偿过程的复杂度&#xff0c;提高测量的准确性。通过自动轮询检测方法&#xff0c;结合硬件检测模型和多通道检测系统设计&#xff0c;本…...

Jenkins解决Host key verification failed (2)

Jenkins解决Host key verification failed 分析原因情况 一、用OpenSSH的人都知ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时&#xff0c;OpenSSH会核对公钥。如果公钥不同&#xff0c;OpenSSH会发出警告&#xff0c;避免…...

C#,数值计算,矩阵的乔莱斯基分解(Cholesky decomposition)算法与源代码

一、安德烈路易斯乔尔斯基 安德烈路易斯乔尔斯基出生于法国波尔多以北的查伦特斯海域的蒙古扬。他在波尔多参加了Lyce e&#xff0c;并于1892年11月14日获得学士学位的第一部分&#xff0c;于1893年7月24日获得第二部分。1895年10月15日&#xff0c;乔尔斯基进入莱科尔理工学院…...

docker 备份 mysql

使用 Docker 执行 MySQL 备份是一个实用的操作&#xff0c;可以帮助你确保数据的安全性和可恢复性。这里有一步步的指导帮你完成&#xff1a; 1. 确定 MySQL 容器名称或 ID 首先&#xff0c;你需要知道运行 MySQL 数据库的容器的名称或 ID。可以通过下面的命令查看所有正在运…...

使用C# Net6连接国产达梦数据库记录

达梦官网&#xff1a;http://www.dameng.com/ 1 下载达梦并进行安装 下载地址&#xff1a;官网首页——服务与合作——下载中心&#xff08;https://www.dameng.com/list_103.html&#xff09; 根据需要自行下载需要的版本&#xff0c;测试版本为&#xff1a;x86 win64 DM8版…...

docker (八)-dockerfile制作镜像

一 dockerfile dockerfile通常包含以下几个常用命令&#xff1a; FROM ubuntu:18.04 WORKDIR /app COPY . . RUN make . CMD python app.py EXPOSE 80 FROM 打包使用的基础镜像WORKDIR 相当于cd命令&#xff0c;进入工作目录COPY 将宿主机的文件复制到容器内RUN 打包时执…...

springcloud-网关(gateway)

springcloud-网关(gateway) 概述 \Spring Cloud Gateway旨在提供一种简单而有效的方式来路由到API&#xff0c;并为其提供跨领域的关注&#xff0c;如&#xff1a;安全、监控/指标和容错 常用术语 Route&#xff08;路由&#xff09;: 网关的基本构件。它由一个ID、一个目的地…...

2.20 day2 QT

自由发挥登录窗口的应用场景&#xff0c;实现一个登录窗口界面 #include "widget.h"Widget::Widget(QWidget *parent): QWidget(parent) {//窗口相关设置this->setWindowTitle("登入页面"); //设置 窗口 标题this->setWindowIcon(QIcon("D:…...

【C++语法基础】4.分支和循环结构(✨新手推荐阅读)

前言 在C编程中&#xff0c;分支和循环结构是控制程序流程的基本工具。分支结构允许程序根据特定条件执行不同的代码块&#xff0c;而循环结构则允许程序重复执行某个代码块。 分支结构 if 语句 if 语句是最基本的分支结构&#xff0c;它根据条件的真假来决定是否执行某段代…...

朋友圈程序全开源版源码,附带系统搭建教程

前台一键发布图文&#xff0c;视频&#xff0c;音乐。发布内容支持定位或自定义位置信息。支持将发布内容设为广告模式消息站内通知或邮件通知。支持其他用户注册,支持其他用户发布文章,管理自己的文章。拥有丰富的后台管理功能&#xff0c;一键操作。安装环境 Nginx ≥1.22 …...

思维方式系列文章目录 -《清单革命》实践

思维方式系列文章目录 -《清单革命》 文章目录 思维方式系列文章目录 -《清单革命》前言一、《清单革命》思维导图二、清单制作原则 前言 请记住&#xff0c;现在开始心灵转变&#xff0c;人人都会犯错&#xff0c;而错误分为&#xff1a;无知之错、无能之错。 无知之错&#…...

RAID 创建使用以及ubuntu安装和使用zfs文件系统及Ubuntu软件安装

RAID 创建使用 部署 RAID 10 的学习 1. 搭建 RAID 10 就是 RAID 1 加上 RAID 0,准备四块磁盘&#xff0c;用于创建 RAID 10,配置vmware虚拟机&#xff0c;创建四个虚拟硬盘。 2. 检查磁盘信息 rootubuntu:~# ls /dev/sd* /dev/sda /dev/sda1 /dev/sda2 /dev/sda3 /dev/s…...

UVa 259 Software Allocation

题目分析 一个计算中心有 101010 台不同的计算机&#xff08;编号 000 至 999&#xff09;&#xff0c;每台计算机在同一时间只能运行一个应用程序。有 262626 种应用程序&#xff0c;名称分别为 A\texttt{A}A 至 Z\texttt{Z}Z。每天会有用户提交应用程序&#xff0c;同一个应用…...

11 极物科技 JetLinks MQTT 直连设备功能调用完整流程与 Python 实现

1. 前言 JetLinks作为开源的IoT物联网平台&#xff0c;提供了完善的设备接入、物模型管理、功能调用等核心能力&#xff0c;其中MQTT协议是设备与平台直连的主流方式。本次测试以继电器设备为核心测试载体&#xff0c;继电器具备明确的“通/断”二元状态&#xff0c;且状态变更…...

毛发质感始终“塑料感”?5类生物毛发纹理映射表,含真实显微扫描数据+对应--s、--style、--stylize配置

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;毛发质感生成的核心困境与突破路径 毛发渲染在影视特效、实时游戏与数字人建模中长期面临物理真实性与计算效率的双重挑战。其核心困境源于微观几何结构的多尺度耦合特性——单根毛发具有弯曲、扭转、分叉、鳞…...

教育机构搭建ai编程辅导平台时如何通过taotoken管理多学生密钥

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 教育机构搭建AI编程辅导平台时如何通过Taotoken管理多学生密钥 在AI编程辅导平台的构建中&#xff0c;教育机构常常面临一个核心的…...

Excel怎么转PDF?2026年实用转换方法大盘点与官方转换指南

Excel 转 PDF 是日常办公中的常见需求。无论是要将数据表格转换为便于分享和打印的格式&#xff0c;还是需要生成最终报告&#xff0c;选择合适的转换方法能帮你节省时间。本文将为你盘点 Excel 转 PDF 的多种方法&#xff0c;从官方内置功能到在线工具再到专业转换小程序&…...

3步解锁专业级HDR画质:MPC Video Renderer完全使用指南

3步解锁专业级HDR画质&#xff1a;MPC Video Renderer完全使用指南 【免费下载链接】VideoRenderer Внешний видео-рендерер 项目地址: https://gitcode.com/gh_mirrors/vi/VideoRenderer 还在为Windows播放HDR视频效果不佳而烦恼吗&#xff1f;MPC…...

告别字幕与水印:LTX 2.3工作流,一键高效清除,附详细使用方法。

一、LTX2.3功能介绍 核心功能&#xff1a;一键去除视频字幕和水印 工作流程&#xff1a; 上传视频 设置参数 设置提示词&#xff08;提示词固定不变&#xff09; 点击运行&#xff0c;即可输出没有水印和字幕的视频 ⬇️⬇️⬇️ 1.核心模型 水印去除模型字幕去除模型 2.模型…...

别再死磕标注数据了!用Diffusion模型从海量无标签遥感图像中‘白嫖’语义信息,提升变化检测精度

无监督特征挖掘&#xff1a;Diffusion模型在遥感变化检测中的革新实践 遥感图像变化检测一直是地理信息科学和计算机视觉交叉领域的重要课题。传统监督学习方法严重依赖大量精确标注的训练数据&#xff0c;而标注高质量的变化检测数据集需要专业领域知识且耗时费力。面对全球每…...

DdddOcr:5分钟掌握Python验证码识别,彻底告别手动输入![特殊字符]

DdddOcr&#xff1a;5分钟掌握Python验证码识别&#xff0c;彻底告别手动输入&#xff01;&#x1f680; 【免费下载链接】ddddocr 带带弟弟 通用验证码识别OCR pypi版 项目地址: https://gitcode.com/gh_mirrors/dd/ddddocr 还在为繁琐的验证码输入而烦恼吗&#xff1f…...

如何验证代理IP纯净度?2026年IP检测与优化指南

一个“脏”IP&#xff0c;如同一个有问题的身份证&#xff0c;它可能会让你的账户面临高风险&#xff0c;甚至被平台封禁。为了避免这种情况&#xff0c;验证和优化代理IP的纯净度成为了不可忽视的环节。本文将为你提供一套2026年最新的代理IP纯净度检测与优化方案&#xff0c;…...