类模板的基本使用

2023-10-31

4.1 写法template <T…> 紧跟着是类
4.2 与函数模板区别,可以有默认类型参数
4.3 函数模板可以进行自动类型推导,而类模板不可以
4.4 类模板中的成员函数 一开始不会创建出来,而是在运行时才去创建

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<string>
using namespace std;

//类模板
template<class T1,class T2=int>//类模板可以有默认类型
class Mentor {
public:
	Mentor(T1 name, T2 age) {
		this->m_age = age;
		this->m_name = name;
	}

	void showMentor() {
		cout << "姓名是:" << this->m_name << "  年龄是:" << this->m_age << endl;
	}

	T1 m_name;
	T2 m_age;
};

void test01() {
	//自动类型推导 ,类模板 不支持
	//Mentor m("锯嘴葫芦", 19);//C2955 'Mentor': use of class template requires template argument list

	//显示指定类型
	Mentor<string,int> mentor("渣渣猫",25);
	mentor.showMentor();

	Mentor<string> mentor1("土拨鼠", 26);
	mentor1.showMentor();
}

int main(){
	test01();
	
	system("pause");
	return 0;
}

在这里插入图片描述

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<string>
using namespace std;

#if(1)
class Nick {
public:
	void showNick() {
		cout << "showNick()调用..." << endl;
	}
};

class Judy {
public:
	void showJudy() {
		cout << "showJudy()调用..." << endl;
	}
};

template<class T>
class Gourd {
public:
	T obj;
	void func1() {
		obj.showNick();
	}
	void func2() {
		obj.showJudy();
	}
};

void test01() {
	Gourd<Nick> gourd;
	gourd.func1();
	//gourd.func2();//C2039 'showJudy': is not a member of 'Nick'
}

int main(){
	test01();
	
	system("pause");
	return 0;
}
#endif

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

类模板的基本使用 的相关文章

  • ROWNUM 的 OracleType 是什么

    我试图参数化所有现有的 sql 但以下代码给了我一个问题 command CommandText String Format SELECT FROM 0 WHERE ROWNUM lt maxRecords command CommandT
  • 属性对象什么时候创建?

    由于属性实际上只是附加到程序集的元数据 这是否意味着属性对象仅根据请求创建 例如当您调用 GetCustomAttributes 时 或者它们是在创建对象时创建的 或者 前两个的组合 在由于 CLR 的属性扫描而创建对象时创建 从 CLR
  • C++:无法使用scoped_allocator_adaptor传播polymorphic_allocator

    我有一个vector
  • 如何在 Unity 中从 RenderTexture 访问原始数据

    问题的简短版本 我正在尝试访问 Unity 中 RenderTexture 的内容 我一直在使用 Graphics Blit 使用自己的材质进行绘制 Graphics Blit null renderTexture material 我的材
  • 如何在没有 Control.Invoke() 的情况下从后台线程修改控件属性

    最近 我们遇到了一些旧版 WinForms 应用程序 我们需要更新一些新功能 在专家测试该应用程序时 发现一些旧功能被破坏 无效的跨线程操作 现在 在您认为我是新手之前 我确实有一些 Windows 窗体应用程序的经验 我不是专家 但我认为
  • fgets() 和 Ctrl+D,三次才能结束?

    I don t understand why I need press Ctrl D for three times to send the EOF In addition if I press Enter then it only too
  • SSH 主机密钥指纹与模式 C# WinSCP 不匹配

    我尝试通过 WinSCP 使用 C 连接到 FTPS 服务器 但收到此错误 SSH 主机密钥指纹 与模式不匹配 经过大量研究 我相信这与密钥的长度有关 当使用 服务器和协议信息 下的界面进行连接时 我从 WinSCP 获得的密钥是xx xx
  • Cygwin 下使用 CMake 编译库

    我一直在尝试使用 CMake 来编译 TinyXML 作为一种迷你项目 尝试学习 CMake 作为补充 我试图将其编译成动态库并自行安装 以便它可以工作 到目前为止 我已经设法编译和安装它 但它编译成 dll 和 dll a 让它工作的唯一
  • 使用 Google Analytics API 在 C# 中显示信息

    我一整天都在寻找一个好的解决方案 但谷歌发展得太快了 我找不到有效的解决方案 我想做的是 我有一个 Web 应用程序 它有一个管理部分 用户需要登录才能查看信息 在本节中 我想显示来自 GA 的一些数据 例如某些特定网址的综合浏览量 因为我
  • C# 用数组封送结构体

    假设我有一个类似于 public struct MyStruct public float a 我想用一些自定义数组大小实例化一个这样的结构 在本例中假设为 2 然后我将其封送到字节数组中 MyStruct s new MyStruct s
  • 使用安全函数在 C 中将字符串添加到字符串

    我想将文件名复制到字符串并附加 cpt 但我无法使用安全函数 strcat s 来做到这一点 错误 字符串不是空终止的 我确实设置了 0 如何使用安全函数修复此问题 size strlen locatie size nieuw char m
  • Windows 10 中 Qt 桌面应用程序的缩放不当

    我正在为 Windows 10 编写一个简单的 Qt Widgets Gui 应用程序 我使用的是 Qt 5 6 0 beta 版本 我遇到的问题是它根本无法缩放到我的 Surfacebook 的屏幕上 这有点难以判断 因为 SO 缩放了图
  • .NET 选项将视频文件流式传输为网络摄像头图像

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网
  • C 中的位移位

    如果与有符号整数对应的位模式右移 则 1 vacant bit will be filled by the sign bit 2 vacant bit will be filled by 0 3 The outcome is impleme
  • 在 URL 中发送之前对特殊字符进行百分比编码

    我需要传递特殊字符 如 等 Facebook Twitter 和此类社交网站的 URL 为此 我将这些字符替换为 URL 转义码 return valToEncode Replace 21 Replace 23 Replace 24 Rep
  • 将日期参数传递给对 MVC 操作的 ajax 调用的安全方法

    我有一个 MVC 操作 它的参数之一是DateTime如果我通过 17 07 2012 它会抛出一个异常 指出参数为空但不能有空值 但如果我通过01 07 2012它被解析为Jan 07 2012 我将日期传递给 ajax 调用DD MM
  • 将变量分配给另一个变量,并将一个变量的更改反映到另一个变量中

    是否可以将一个变量分配给另一个变量 并且当您更改第二个变量时 更改会瀑布式下降到第一个变量 像这样 int a 0 int b a b 1 现在 b 和 a 都 1 我问这个问题的原因是因为我有 4 个要跟踪的对象 并且我使用名为 curr
  • 更改显示的 DPI 缩放大小使 Qt 应用程序的字体大小渲染得更大

    我使用 Qt 创建了一些 GUI 应用程序 我的 GUI 应用程序包含按钮和单选按钮等控件 当我运行应用程序时 按钮内的按钮和字体看起来正常 当我将显示器的 DPI 缩放大小从 100 更改为 150 或 200 时 无论分辨率如何 控件的
  • C++ 成员函数中的“if (!this)”有多糟糕?

    如果我遇到旧代码if this return 在应用程序中 这种风险有多严重 它是一个危险的定时炸弹 需要立即在应用程序范围内进行搜索和销毁工作 还是更像是一种可以悄悄留在原处的代码气味 我不打算writing当然 执行此操作的代码 相反
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但

随机推荐

  • 云化背景下的接口测试覆盖率自动化检查

    一 问题来源 在云化场景下 API的测试覆盖是一项重要评估与考察指标 除了开发者自测试外 UT 还可以利用云化测试平台 流水线等方法进行相关指标的检查与考核 利用这种方法既可以减轻开发者测试工作量 不必在本地做大量的 降低人为指标灰度空间
  • Android10.0 Binder通信原理(八)-Framework层分析

    Android取经之路 的源码都基于Android Q 10 0 进行分析 Android取经之路 系列文章 系统启动篇 Android系统架构Android是怎么启动的Android 10 0系统启动之init进程Android10 0系
  • 虚拟机Ubuntu操作系统最基本终端命令(安装包+详细解释+详细演示)

    虚拟机及乌班图 Ubuntu操作系统 提示 大家需要软件的可以直接在此链接中提取 链接 https pan baidu com s 1 4VHGTlXjIuVhBINeOuBCA 提取码 nd0c 文章目录 虚拟机及乌班图 Ubuntu操作
  • 数据质量测试:测试数据有效性和准确性的方法

    以下为作者观点 来看看你认同吗 如果西西弗斯 编者注 希腊神话中的人物 是一个数据分析师或数据科学家 他在山上滚动的巨石将是他的数据质量保障 即使所有获取 处理和建模的工程流程都无懈可击 但在数据管道的任何阶段测试数据质量的能力 以及面对
  • java中的集合框架

    一 集合框架 集合框架 java做好的用来管理乱七八糟的一堆数据的java类库 集合 乱七八糟的一堆 框架 做好的java类库 Java中的集合框架总体被分为2个大部分第一个大部分是用来处理单列数据的集合 最大的接口时Collection接
  • 小白开发微信小程序49--本地服务器部署测试小程序

    相信大家对微信小程序的基础和项目应该没有太大问题了 如果还有对微信小程序开发有一些问题 请查看回顾 微信小程序开发者开发好一款微信小程序后 怎么才能发布呢 如何将其提交给微信审核呢 在前面的 领航教育 项目开发中 后台采用的是C 开发语言
  • matlab 计算点云最大距离

    RANSAC 一 算法原理 1 算法概述 2 主要函数 二 代码实现 三 结果展示 四 参考链接 一 算法原理 1 算法概述 计算同一个点云中所有点之间的最大距离 是4PCS配准算法中进行重叠度预估的重要一步 是实现手写4PCS及能够对其改
  • LeetCode刷题-10

    数组 121 买卖股票的最佳时机 题目描述 题目样例 Java方法 暴力法 代码 复杂度 Java方法 一次遍历 算法思路 代码 复杂度 题目描述 给定一个数组 prices 它的第 i 个元素 prices i 表示一支给定股票第 i 天
  • 榜样访谈——董宇航:在俱乐部中收获爱情

    先做一个简单的自我介绍吧 董宇航 大家好 我是来自辽宁工程技术大学的董宇航 我是网络工程专业的 今年大三 同时也担任CSDN辽宁工程技术大学高校俱乐部俱乐部的主席 我们在线下也有一个经过学校正规备案的学生社团叫软件学院创客俱乐部 在计算机学
  • $sql=mysql_query(_MySQL mysql_query 函数执行SQL语句

    mysql query 函数 PHP MySQL 函数库中 mysql query 函数用于向 MySQL 发送并执行 SQL 语句 对于没有数据返回结果集的 SQL 如 UPDATE DELETE 等在执行成功时返回 TRUE 出错时返回
  • JenKins 自动化打包上传到服务器的fir 工具

    fir im Jenkins 插件使用方法 fir im Jenkins 插件可以更快速地上传 apk ipa 安装包到 fir im 安装 Jenkins 方法一 直接下载安装包 Download Jenkins 安装完成后在 Termi
  • PTA老板的作息表

    记得当时考场上没想到数组开始和结尾加00 00 00和23 59 59 考完才想起来 当时在那写判断 真的菜傻了 新浪微博上有人发了某老板的作息时间表 表示其每天 4 30 就起床了 但立刻有眼尖的网友问 这时间表不完整啊 早上九点到下午一
  • 自参考和对比学习正则化的Few-shot医学图像分割

    文章目录 Few shot Medical Image Segmentation Regularized with Self reference and Contrastive Learning 摘要 本文方法 Local Prototyp
  • 10大流行的 Metro UI 风格的 Bootstrap 主题和模板

    Metro UI 是一种界面展示技术 是 Windows 8 的主要界面显示风格 Metro 界面和 iOS Android 界面最大的区别在于 后两种都是以应用为主要呈现对象 而 Metro 界面强调的是信息本身 而不是冗余的界面元素 同
  • /usr/bin/env: bash: No such file or directory

    usr bin env bash r 没有这样的文件或目录 usr bin env bash No such file or directory 解决方法 sed i s r shell文件名
  • Unity新建脚本中无法继承MonoBehaviour(MonoBehaviour为灰色)

    第一种解决方法 第一步 在视图中找到解决方案资源管理器 第二步 点击显示所有文件 第三步 找到不能继承MonoBehaviour的脚本右键包括在项目中 第二种解决方法 第一步 同样打开解决方案资源管理器 第二步 右键点击解决方案 点击添加
  • Educational Codeforces Round 98 -B - Toy Blocks (思维)

    题目链接 题目大意 n个盒子 每个盒子里有a i 个球 对于任意一个盒子 可以把其中的球随意分配到其他 n 1 个盒子当中 使得n 1个盒子中的球数目相等 求 向n个盒子中最少添加多少个球才能实现上述操作 题目思路 设最少向盒子添加 x个球
  • Web前端学习:jQuery基础--1【简介和安装、语法使用、三种选选择器的使用(元素、class、id)】(附操作源码)

    目录 一 jQuery介绍和安装 1 jQuery简介 2 jQuery安装和引用 jQuery安装基本说明 jQuery引用 二 jQuery语法和使用 1 jQuery语法 2 jQuery使用 文件就绪事件 jQuery语法使用 三
  • windows Terminal 设置窗口启动大小与启动位置

    windows Terminal 设置窗口启动大小与启动位置 1 Terminal 打开配置文件 windows Terminal 配置文件位置 C Users 12779 AppData Local Packages Microsoft
  • 类模板的基本使用

    4 1 写法template