C++ 普通函数和模板函数调用规则

/**
调用规则如下:
1.如果函数模板和普通函数都可以实现,优先调用普通函数
2.可以通过空模板参数列表来强制调用函数模板
3.函数模板也可以发生重载
4.如果函数模板可以产生更好的匹配, 优先调用函数模板
*/ 

总结:既然提供了函数模板,最好就不要提供普通函数,否则容易出现二义性

#include<iostream>;
using namespace std;/**
调用规则如下:
1.如果函数模板和普通函数都可以实现,优先调用普通函数
2.可以通过空模板参数列表来强制调用函数模板
3.函数模板也可以发生重载
4.如果函数模板可以产生更好的匹配, 优先调用函数模板
*///普通函数与函数模板调用规则
void myPrint(int a,int b) {cout << "调用的普通函数" << endl;
}
template<typename T>
void myPrint(T a, T b) {cout << "调用的模板" << endl;
}
template<typename T>
void myPrint(T a, T b, T C) {cout << "调用重载的模板" << endl;
}
void test01() {//1、如果函数模板和普通函数都可以实现,优先调用普通函数//注意如果告诉编译器普通 函数是有的,但只是声明没有实现,或者不在当前文件内实现,就会报错找不int a = 10;int b = 20;myPrint(a, b); //调用普通函数// 2、可以通过空模板参数列表来强制调用函数模板myPrint<>(a, b); //调用函数模板//3、函数模板也可以发生重载int C = 30;myPrint(a, b, C); //调用重载的函数模板//4、如果函数模板可以产生 更好的匹配,优先调用函数模板char C1 = 'a';char C2 = 'b';myPrint(C1, C2); //调用函数模板
}int main() {test01();system("pause");return 0;
}

 

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

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

相关文章

计算机网络原理(第一章)课后题答案

第一章 1.什么是计算机网络&#xff1f; 计算机网络是互联、自治的计算机集合 自治&#xff1a;计算机系统彼此独立&#xff0c;不存在主从或控制与被控制的关系 互联&#xff1a;利用通信线路链接&#xff0c;连接相互独立的计算机系统 2.网络协议的三要素是什么&#xf…

VCS使用指令

vcs -debug v2k -f file.tcl -R -ucli -V -do do.tcl -notice -P /home/tian/programs/verdi/share/PLI/VCS/LINUX/novas.tab /home/tian/programs/verdi/share/PLI/VCS/LINUX/pli.a转载于:https://www.cnblogs.com/tshell/archive/2012/10/31/2747463.html

计算机网络原理(第二章)课后题答案

第二章 1.计算机网络应用可以分为哪几种体系结构的应用类型&#xff1f;各种应用类型的特点是什么&#xff1f; C/S结构&#xff1a;通信旨在客户与服务器之间进行&#xff0c;客户与客户不直接通信 纯P2P结构&#xff1a;没有永远在线的服务器&#xff0c;任意端系统/结点之…

计算机网络原理(第三章) 传输层 课后习题

1、实现可靠数据传输的主要措施有哪些?这些措施主要用于解决哪些问题&#xff1f;P98差错检测&#xff1a;利用差错编码实现数据包传输过程中的比特差错检测 确认&#xff1a;确认方向发送方反馈接收状态 重传&#xff1a;发送方重新发送接收方没有正确接收的数据 序号&#x…

电子商务的安全机制及商务模式

电子商务最常见之安全机制有SSL及SET两种。【分类】B2B、B2C、 C2C、B2M四类电子商务模式。 B2B 指的是Business to Business. as in businesses doing business with other businesses,商家(泛指企业)对商家的电子商务&#xff0c;即企业与企业之间通过互联网进行产品、服务及…

Date和Calendar

此文章来源于廖雪峰博客&#xff1a;Date和Calendar - 廖雪峰的官方网站 在计算机中&#xff0c;应该如何表示日期和时间呢&#xff1f; 我们经常看到的日期和时间表示方式如下&#xff1a; 2019-11-20 0:15:01 GMT00:002019年11月20日8:15:0111/19/2019 19:15:01 America/N…

grandle下载安装图解

1、登录官网&#xff1a;www.gradle.org,进入到下图的界面&#xff1a; 我这里选择了最新版本下载 配置环境变量&#xff0c;这个gradle环境变量是依赖jvm的&#xff0c;需要优先配置jdk&#xff0c;我这里就配置好了 这个GRADLE_USER_HOME相当于maven的本地仓库 配置完成&…

android ListView控件滑动时出现黑色背景问题解法方案

设置ListView属性android:cacheColorHint"#00000000" <ListViewandroid:id"id/orderDetailListView01"android:layout_width"wrap_content"android:layout_height"wrap_content" android:cacheColorHint"#00000000" /&…

面向对象设计7大原则

概述 熟练掌握和应用面向对象设计&#xff08;Object Oriented Design&#xff0c;OOD&#xff09;7大原则&#xff0c;是初/中级Java工程师向高级/资深工程师进阶的一个必备技能&#xff0c;它可以大大提升程序的可复用性和可维护性&#xff0c;也是重构代码的一大利器。7大设…

discuz x2.5 DIY模块模板语法详解

基本语句 [loop]...[/loop]标签来循环显示模块中的数据&#xff1b;如果要在模板中多处循环可以使用[loop1]...[/loop1]的方式扩展&#xff08;只能扩展1-9个&#xff09; [orderN]...[/order]标签来替代默认loop中的第N个位置数据的展示&#xff0c;你可以使用[order1N]...[/o…

get请求可以传body吗_GET 和 POST 的区别?

同样还是面试被问到的问题&#xff0c;经过这两天的复盘&#xff0c;发现之前对其的了解只是冰山一角&#xff0c;这两天也学到了不少新的知识&#xff0c;不得不说面试的确能帮我们弥补一些不足。本文将从基本概念、两者之间的区别以及几个常见问题来进行介绍&#xff0c;首先…

WINCE 下配置 QT 的方法

1. 推荐安装环境 Windows XP SP3 VS2005(SP1)2. 载Qt for WinCE(eg. qt-everywhere-opensource-src-4.8.3.zip)3. 解压到C:\Qt\4.8.3WinCE4. 安装WinCE的SDK(如RNx&#xff0c;WinCE5.0的)5. 将C:\Qt\4.8.3WinCE\bin加到环境变量Path中6. 修改代码或配置(注1)&#xff0c;否则…

AQS基本原理

什么是AQS&#xff1f; AQS即AbstractQueuedSynchronizer,是一个用于构建锁和同步器的框架。它能降低构建锁和同步器的工作量&#xff0c;还可以避免处理多个位置上发生的竞争问题。在基于AQS构建的同步器中&#xff0c;只可能在一个时刻发生阻塞&#xff0c;从而降低上下文切…

C语言 int** 二重指针的理解

#include <stdio.h> #include <stdlib.h>/*&根据值找地址*根据地址找值 */ f(int** q){//传入的是指针的地址 int i 3; printf("子函数 i的地址 %#X\n",&i); // *q 代表的就是p变量 *q &i; //*q指向是p的值 也就是…

ReentrantReadWriteLock源码分析

概述 ReentrantReadWriteLock维护了一对相关的锁&#xff0c;它们分别是共享readLock和独占writeLock。关于共享读锁和排他写锁的概念其实很好理解。所谓共享读锁就是一个线程读的时候&#xff0c;其它线程也可以来读&#xff08;共享&#xff09;&#xff0c;但是不能来写。排…

@Autowired、@Qualifier、@Resource的区别

参考博文&#xff1a; http://www.cnblogs.com/happyyang/articles/3553687.html http://blog.csdn.net/revent/article/details/49203619 http://blog.csdn.net/ad921012/article/details/49679745 spring不但支持自己定义的Autowired注解&#xff0c;还支持几个由JSR-250…

UINavigationViewController的backBarButtonItem设置技巧

之前大家是否疑惑为什么设置了类似这样的代码 UIBarButtonItem *backButton [[UIBarButtonItem alloc] initWithTitle:"返回" …

MySQL行锁和表锁的含义及区别

今天在开发测试时候出现了锁表&#xff0c;原因是因为我在本地开启了事务&#xff0c;代码中打了断点&#xff0c;然后测试同学测试时候出现了锁表&#xff0c;我去排查了问题&#xff0c;然后找到相关的资料了解下&#xff0c; 总结&#xff1a;原因的表没有加索引&#xff0…

Thinking In Design Pattern——Query Object模式

什么是Query Object模式 Query Object的架构设计 Query Object在服务层的应用 测试 Query Object模式 Query Object&#xff1a;可以在领域服务层构造查询然后传给资源库使用&#xff0c;并使用某种查询翻译器将对象查询&#xff08;Query&#xff09;翻译成底层数据库持久化…

linux gcc编译C程序 分享

一个c语言程序从源文件到生成可执行文件&#xff0c;编译器需要共经历4个步骤&#xff1a;1) 预处理&#xff1a;把c文件中预处理命令扫描处理完毕&#xff0c;即对源代码文件中的文件包含(#include)、预编译语句(如宏定义#define等)进行分析&#xff0c;此时生成的文件仍然是可…