C++ 模板类与函数

ops/2024/10/20 11:37:57/

模板类可以用于函数的参数和返回值,有三种形式:
1)普通函数,参数和返回值是模板类的实例化版本。
2)函数模板,参数和返回值是某种的模板类。
3)函数模板,参数和返回值是任意类型(支持普通类和模板类和其它类型)。
示例:

#include <iostream>         // 包含头文件。
using namespace std;        // 指定缺省的命名空间。template<class T1, class T2>
class AA    // 模板类AA。
{
public:T1 m_x;T2 m_y;AA(const T1 x, const T2 y) : m_x(x), m_y(y) { }void show() const { cout << "show()  x = " << m_x << ", y = " << m_y << endl; }
};// 采用普通函数,参数和返回值是模板类AA的实例化版本。
AA<int, string> func(AA<int, string>& aa)
{aa.show();cout << "调用了func(AA<int, string> &aa)函数。\n";return aa;
}// 函数模板,参数和返回值是的模板类AA。
template <typename T1,typename T2>
AA<T1, T2> func(AA<T1, T2>& aa)
{aa.show();cout << "调用了func(AA<T1, T2> &aa)函数。\n";return aa;
}// 函数模板,参数和返回值是任意类型。
template <typename T>
T func(T &aa)
{aa.show();cout << "调用了func(AA<T> &aa)函数。\n";return aa;
}int main()
{AA<int, string> aa(3, "我是一只傻傻鸟。");func(aa);
}

推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家:
零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核)
https://xxetb.xet.tech/s/3Zqhgt


http://www.ppmy.cn/ops/55428.html

相关文章

2024攻防演练:亚信安全新一代WAF,关键时刻守护先锋

实网攻防 网络安全如同一面坚固的盾牌&#xff0c;保护着我们的信息资产免受无孔不入的威胁。而其中&#xff0c;WAF就像网络安全的守门员&#xff0c;关键时刻挺身而出&#xff0c;为您的企业筑起一道坚实的防线。 攻防不对等 防守方实时应答压力山大 在攻防对抗中&#xf…

ffmpeg loglevel

ffmpeg 的 loglevel 参数用于控制 ffmpeg 在执行时向标准输出&#xff08;通常是终端或命令行界面&#xff09;打印的信息的详细程度。这个参数对于调试、监控 ffmpeg 的行为或仅仅是为了减少不必要的输出信息非常有用。 loglevel 的值可以是以下之一&#xff08;按信息详细程…

37 类型转换

目录 C语言的类型转换C类型转换为什么需要类型转换RTTI 1. c语言中的类型转换 在c语言中&#xff0c;如果赋值运算符左右两侧类型不同&#xff0c;或者形参与实参类型不匹配&#xff0c;或者返回值类型与接收返回值类型不一致时&#xff0c;就需要发生类型转换&#xff0c;c语…

查询工资级别的个数>20的个数,并且按工贷级别降序

SELECT COUNT(*), grade_level FROM employees e JOIN job_grades g ON e.salary BETWEEN g.lowest_sal AND g.highest_sal GROUP BY grade_level HAVING COUNT(*) > 20 ORDER BY grade_level DESC; 为什么需要GROUP BY而不是仅仅ORDER BY&#xff1f; 聚合数据&#xff1a…

原生小程序配置公共的样式方法之一

我们无论在写小程序或是其他程序时&#xff0c;难免会遇见同样的颜色值&#xff0c;或者间距值&#xff0c;每次都要写显得麻烦&#xff0c;逼数又不高&#xff1b; 如果哪天需要将整个主题颜色改了&#xff0c;那岂不是得一个一个去查找改&#xff0c;很麻烦&#xff0c;所以&…

Pycharm常用快捷键整理

1&#xff0c;格式化代码 【ctrlAltL】 写代码的时候会发现有很多黄色的波浪号&#xff0c;这个时候可以点击任意黄色波浪号的代码&#xff0c;然后按下【Ctrl Alt L】进行代码格式化 2&#xff0c;快速往返 ctrll Alt ⬅ &#xff0c;表示查看上一步调用函数位置&#xff0…

leetcode--二叉树中的最长交错路径

leetcode地址&#xff1a;二叉树中的最长交错路径 给你一棵以 root 为根的二叉树&#xff0c;二叉树中的交错路径定义如下&#xff1a; 选择二叉树中 任意 节点和一个方向&#xff08;左或者右&#xff09;。 如果前进方向为右&#xff0c;那么移动到当前节点的的右子节点&…

使用AES加密数据传输的iOS客户端实现方案

在现代应用开发中&#xff0c;确保数据传输的安全性是至关重要的。本文将介绍如何在iOS客户端中使用AES加密数据传输&#xff0c;并与服务器端保持加密解密的一致性。本文不会包含服务器端代码&#xff0c;但会解释其实现原理。 加密与解密的基本原理 AES&#xff08;Advance…