C++ 类模板和函数模板:

C++模板编程:函数模板和类模板 C++面试题 阅读详情

1、类模板

#include <iostream>
using namespace std;
//-----------------------------通用类模板---------------------------
template<class T1,class T2>//通用模板
class Compare //在这里不能写类型
{
private:    
    T1 num1;
    T2 num2;
public:
    Compare();
};

template<class T1,class T2> //这里必须写
Compare<T1,T2>::Compare  ()
{
    cout << "通用模板" << endl;
}
//--------------------------类模板全特化------------------------
template<>   //类模板全特化
class Compare<char*,char*>    //在这里写上所需要的类型
{
private:    
    char* num1;
    char* num2;
public: 
    Compare();
};
//template<>   //全特化这行代码不能写!!!
Compare<char* ,char*>::Compare()
{
    cout  << "全特化" << endl;
}
//--------------------------类模板偏特化--------------------------
template<class T2>  //类模板偏特化
class Compare<float,T2>     //偏特化类型T1 特化为float类型
{
private:    
    float num1;
    T2 num2;
public:    
    Compare();
};
template<class T2>  //偏特化这里必须要写
Compare<float,T2>::Compare()
{
    cout << "偏特化"<< endl;
}
//-------------------------------测试---------------------------------
int main(int argc, char *argv[])
{
    Compare <int   ,int> p1;    //打印通用函数
    Compare <char*,char*> p2;   //打印全特化
    Compare <float,int> p3;     //打印偏特化
    return 0;
}

2、函数模板

#include <iostream>
#include<string.h>
using namespace std;

//--------------------------函数模板---------------------------------
template<class T1,class T2>
bool test(T1 t1, T2 t2)
{
    return t1 == t2;
}

//--------------------------模板全特化--------------------------------
template<>     //因为字符串比较不能通过直接相等来比较,的特化一下
bool test  <char*>  (char* t1,char* t2)    //标明特化类型
{
    return strcmp(t1,t2);
}
//----------------------------测试------------------------------------
int main(int argc, char *argv[])
{
    char str1[20] = "helle";
    char str2[20] = "hello";
    if(test(str1,str2) == 0){    //会去调用特化后的模板
        cout << "t1 == t2 " << endl;
    }else{
       cout <<  "t1 != t2 " << endl;
    }
    return 0;
}

ESP32S3学习——i2c,点亮0.96寸oled 阅读详情

相关推荐

OBS技术深度剖析:从开源直播工具到专业制作引擎的进化之路

本文深入剖析了开源直播软件OBS的技术架构与发展历程。从2012年诞生至今,OBS已成长为直播领域的事实标准,其成功源于模块化设计和开源协作模式。文章详细解析了OBS的核心技术:1) 分层架构与插件系统,2) GPU加速的渲染管线,3) 智能音频处理,4) 多平台编码优化。同时探讨了虚拟摄像头、浏览器源等高级功能的实现原理,并提供了性能优化方案和硬件配置建议。随着AI、WebRTC等新技术发展,OBS将持续引领实时内容创作工具的创新,为开发者和创作者提供更强大的技术支持。

程序猿老樊的博客 327

C++ 模仿实现Java SpringMVC框架中Controller

背景 之前有很长一段时间学过Java的SpringMVC框架,被它的简洁优雅所感动。后面从事了C++开发,遇到相识的开发场景总会联想到Java的框架上,本文就分享一下如何用C++模仿实现SpringMVC中Controller的功能效果。 分析与实现 我们先来看看SpringMVC是怎么来写Controller的 @RestController public class HelloWorldController { @RequestMapping("/hello") public Strin

qq_39519014的博客 2909

学习笔记9--智能驾驶的功能安全设计之功能安全设计

本系列博客包括6个专栏,分别为:《自动驾驶技术概览》、《自动驾驶汽车平台技术基础》、《自动驾驶汽车定位技术》、《自动驾驶汽车环境感知》、《自动驾驶汽车决策与控制》、《自动驾驶系统设计及应用》。此专栏是关于《自动驾驶系统设计及应用》书籍的笔记.

FUXI_Willard 1795

2-8 类与对象:C++继承

继承是面向对象三大特性之一。 一、继承的基本语法 继承的好处:减少重复的代码 语法: class 子类:继承方式 父类{}; 特点: 子类继承父类的特性,并拥有自己特有的成员,子类也称为派生类 父类的特性其所有子类均能够继承,父类也称为基类 #include <iostream> using namespace std; #include<string> //创建班级父类 class Class { public: //构造函数 Class(string name

Bean Wang 450

Unity最强动作战斗框架?Combat System Framework 深度解析

Combat System Framework 并不是一个简单的角色控制器,而是一套完整的动作游戏战斗开发框架。它借鉴了现代 AAA 游戏常见的架构思想,以 Gameplay Tag 为核心,结合 ScriptableObject 数据驱动设计,将技能、属性、Buff、伤害、武器、动画通知等系统有机整合在一起。同时,配套的可视化动画时间轴、Root Motion 工具和实时预览窗口,大幅优化了动作开发流程。当然,这套框架也有一定的学习门槛。

2403_88403568的博客 682

Far planner 代码系列(33) 关于real_world_contour和contour_graph

我们知道far planner前部分的流程是这样子的: 对于特定的地图,如下: 我们要从surround_obs_cloud里抽取生成realworld_contour_,如下图所示: 在这时候,每个node的z坐标都是以机器人的高度定的。如图所示: 先去吃饭啦~待会回来在写 ...

博客 763

配置方法_让小白也能懂的Bean配置方法

今天整理了一些注入和Bean的知识点,希望能帮助到屏幕前的你 依赖注入(Dependency Injection,DI)和控制反转含义相同,它们是从两个角度描述的同一个概念。当某个 Java 实例需要另一个 Java 实例时,传统的方法是由调用者创建被调用者的实例(例如,使用 new 关键字获得被调用者实例),而使用 Spring框架后,被调用者的实例不再由调用者创建,而是由 Spring 容器创...

weixin_39888180的博客 357

基于STM32的家庭环境监测毕业设计(全部资料)

本文设计并实现了一套基于STM32的家庭环境监测系统,具备温湿度、烟雾浓度和PM2.5检测功能,通过OLED屏实时显示数据,并能自动或手动控制风扇、加湿器等设备。系统采用分层架构设计,包含数据采集、处理、显示和控制执行模块,经测试性能稳定可靠。研究结果表明,该系统能有效提升家庭环境监测与控制的智能化水平,但仍存在传感器精度和智能化程度不足等问题,未来可进一步优化硬件配置并引入AI算法提升性能。

3254968421的博客 462

2-4 类和对象:C++封装

一、类和对象 二、访问权限 三、C++中struct和class的区别 四、成员属性私有化 五、封装示例 1. 长方体类案例 设计长方体类 使用类成员方法获取长方体的表面积和体积 使用全局函数获取长方体的表面积和体积 #include<iostream> using namespace std; class Cube { //成员方法 public: //设置长方体的长 void setLength(double L) { m_L = L; ...

Bean Wang 267

SAP_SD模块销售开票计划预收款系统配置及前台操作说明

在 SAP SD 中,开票计划(Billing Plan)是一种允许根据时间节点或里程碑对销售订单进行分期开票的功能。其中最常见的一种应用就是预收款(Down Payment Billing),即在销售订单中直接定义某个百分比或金额作为预收款,系统在开票时自动生成预收账单。大额合同或长期项目型销售(先收 20%,交货前收 30%,交货后收 50%)。分期付款模式(分阶段收款)。必须预收款才能安排生产或交货的业务。后台路径:SPRO—销售与分享—销售—销售凭证—销售凭证项目—定义项目类别。

我小时候很黑的博客 1409

微搭低代码实现用户登录及注册功能

在小程序开发中,我们可以拿到微信用户的openid,openid可以作为用户的唯一标识,在查询数据的时候可以进行数据过滤实现查询自己提交的数据。那微搭中是否也有openid这个概念,可以获取用户自己提交的数据呢? 答案是肯定的,那要怎么去做呢?思路是先创建一个数据源方法,在数据源中返回openid,然后低代码中可以调用数据源的方法并且赋值给全局变量,这样在后续的业务中从全局变量就可以获取openid了,方便做数据权限的控制。 为了实现这个目的,我们从创建数据源开始。 创建数据源 我们先创建一个用户管理的数据

低代码布道师的博客 3000

c++ 单例模式_Spring Bean注入/单例理解/循环依赖

理解循环依赖问题,首先明白spring有四种注入方式。第一种,SET注入a类中持有b类的引用,并且a类有b的set方法。在bean中添加标签即可注入。实质上是将b实例化,然后调用set方法注入。 第二种,构造器注入a类中持有b类的引用,并且a的构造函数参数中有b。实质上就是通过构造函数注入,创建a对象时要把b对象传进去。 第三种,静态工厂如果有需要静态工厂实例化的类,不能通过静态工厂.方法...

weixin_39673601的博客 536

层层剖析,让你彻底搞懂Self-Attention、MultiHead-Attention和Masked-Attention的机制和原理

本文内容 本文基于李宏毅老师对 Self-Attention 的讲解,进行理解和补充,并结合Pytorch代码,最终目的是使得自己和各位读者更好的理解Self-Attention 李宏毅Self-Attention链接: https://www.youtube.com/watch?v=hYdO9CscNes PPT链接见视频下方 通过本文的阅读,你可以获得以下知识: 什么是Self-Attention,为什么要用Self-Attention? Self-Attention是如何做的? Self-Atten

iioSnail的博客 2万+

C++中模板总结:函数模板和类模板

C++中的一种编程思想称为泛型编程,主要利用的技术就是模板。 C++提供两种模板机制:函数模板和类模板 总结: 1、函数模板利用关键字template 2、使用函数模板有两种方式:自动类型推到、显示指定类型 3、模板的目的是为了提高复用性,将类型参数化 注意事项: 1、自动类型推导,必须推导出一致的数据类型T,才可以使用 2、模板必须要确定出T的数据类型,才可以使用 ...

桔子皮的博客 551

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

C++:初识函数模板和类模板

本文对C++中函数模板和类模板进行了初步解读

weixin_43908419的博客 1180

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

C++语言基础:模板——函数模板和类模板

1、模板的概念 1.1、模板就是建立通用的工具,大大提高复用性 1.2、C++的另一种编程思想称为泛型编程,主要利用的技术就是模板 C++提供两种模板机制:函数模板和类模板 2、函数模板 2.1 函数模板语法 函数模板作用 建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表。 语法: 语法定义: 1. template<typename T> 2. 函数声明或定义 语法定义的解释

changlif的博客 996

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

C++:模板(函数模板和类模板)

文章目录1. 泛型编程2. 函数模板2.1 概念2.2 格式2.3 原理2.4 实例化2.4.1 隐式实例化2.4.2 显示实例化2.5 最佳匹配原则2.6 函数模板和模板函数3. 类模板3.1 格式3.2 实例化3.3 非类型模板参数3.4 零初始化3.5 typename和class3.5.1 只能使用typename的例子3.5.2 只能使用class的例子 1. 泛型编程 还记得我们经常使用的swap函数的实现吗? void swap(int& a,int& b) { int t

zw的博客 1366

C++专题:函数模板和类模板

详细介绍了关于类模板和函数模板的用法

m0_70983574的博客 294

【C++】初识模板:函数模板和类模板

class 类模板名// 类内成员定义。

2301_76606232的博客 1409

C++初阶:入门泛型编程(函数模板和类模板)

这是这次的大概内容:1.泛型编程 2.函数模版 2.1概念 2.2格式 2.3函数模版的原理 2.4函数模版的实例化 2.4.1隐式实例化 2.4.2显示实例化 2.5 模板参数的匹配原则 3.类模板 3.1概念 3.2格式 3.3类模板的实例化

qq_74415153的博客 4302

C++笔记7:C++提高编程1:模板—[函数模板和类模板]

0820 引言: C++除了面向对象编程思想,还有泛型编程思想。 泛型编程主要是利用模板技术来实现的。 1.模板 1.1 模板的概念 模板就是建立通用的模具,大大提高复用性。 模板的特点: ①模板不可以直接使用,它只是一个框架而已; ②模板不是万能的。 1.2 函数模板 建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表。 1.2.1 语法 template //函数声明或定义 其中: template — 声明创建模板 typename — 表面其后面的符号是一种数据

weixin_38665351的博客 304

C++泛型编程:函数模板 和 类模板详细介绍。

C++泛型编程:函数模板 和 类模板详细介绍。

a2998658795的博客 572

C++模板:函数模板和类模板

本文章主要讲述了C++中的函数模板和类模板,超详细。

Jammy_1的博客 242

【C++模板】第一篇:函数模板和类模板

这里写目录标题一级目录二级目录三级目录 一级目录 二级目录 三级目录

qq_53505979的博客 230

C++:函数模板和类模板

函数模板类似于函数重载。 函数模板的一般定义形式如下: template<类型形式参数表> //模板前缀 返回类型 函数名(形式参数表) { //函数体 } 程序如下: #include<iostream.h> template<class T> //T代表某种数据类型,也可以用template<typename T> v...

xikangsoon的博客 202

C++基础:模板,函数模板和类模板

文章目录函数模板类模板 模板是允许函数或类通过泛性的形式表现或运行的特性 函数模板 模板可以使函数或者类只写一份代码而对应不同的类型 取整数、小数、字符中的最大值 #include <iostream> using namespace std; /* int Max(int a,int b){ return a>b?a:b; } double Max(double a,double b){ return a>b?a:b; } double Max

凯凯在此 221
上一篇: Qt label里的文本居中方法:
下一篇: C++ 怎样把std::vector<char>对象内容赋值到std::string对象中?写出关键代码
Bean_Turtle
博客等级 码龄7年 7粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值