IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> c++中简单的模板编程 -> 正文阅读

[C++知识库]c++中简单的模板编程

/*函数的模板*/
//案例要求:需要一个两数相加的函数,该函数能进行任一同类型数据的相加,不同类型的数直接template<typename T1, typename T2>void sum(T1 a, T2 b)。
#include <iostream>
using namespace std;
//书写格式如下 其中template <typename T>是固定的,后面正常加普通函数定义就行
// T 就当成一个数据类型,如int float double 等等。
template <typename T> void sum(T a, T b){
??? cout << a << " + " << b << " = " << a + b << endl;//这里我直接打印
}
int main(int argc, char* argv[]){
??? sum(4.6 , 9.3);//这里是4.6 和 9.3 ,他们的类型都为double。所以T 其实就为 double
??? sum(5, 9);//这里是5 和 9 ,他们的类型都为int。所以T 其实就为 int
??? return 0;
}

/*类的模板*/
//案例要求 实例化两个学生并给他们取名字,让他们介绍自己,一个学生会int的sum ,一个学生会duble的sum。
#include <iostream>
using namespace std;
//书写方式跟函数的模板差不多
template<typename T>
class Student{
??? public:
??????? void sum(T a, T b){
??????????? cout << "a + b = " << a + b << endl;
??????? }
??????? Student(string name){
??????????? this->name = name;
??????? }
??????? void introduction(){
??????????? cout << "I am " << this->name << "I can all kinds of sum" << endl;
??????? }
??? private:
??????? string name;
??????? string sumType;
};
int main(int argc, char* argv[]){
??? Student<int> stu1("lll");//叫lll,能做关于int的加法??? 这里的<int>相当于让 T 变为 int,下面的double同理
??? stu1.introduction();//学生的介绍
??? stu1.sum(3, 5);

??? Student<double> stu2("kkk");//叫kkk,能做关于double的加法
??? stu2.introduction();
??? stu2.sum(3.6, 5.9);
??? // Student<int> stu2();
??? return 0;
}

/*在类中用函数模板*/
// 案例需求:实例化一个学生类并给其姓名,然后学生进行自我介绍,之后该学生演示int的加法和double的加法。
#include <iostream>
using namespace std;
// #include "classAndfuncTemplate.h"
class Student{
??? public:
??????? //直接写一个模板函数就行
??????? template<typename T> void sum(T a, T b){
??????????? cout << a << " + " << b << " = " << a + b << endl;
??????? }
??????? Student(string name){
??????????? this->name = name;
??????? }
??????? void introduction(){
??????????? cout << "I am " << this->name << "I can all kinds of sum" << endl;
??????? }
??? private:
??????? string name;
};
int main(int argc, char* argv[]){
??? Student stu1("大帅哥");//实例化学生并起名
??? stu1.introduction();//学生做自我介绍
??? stu1.sum(3,5);//学生做int加法
??? stu1.sum(103.3,164.6);//学生做double加法
??? // Student<int> stu2();
??? return 0;
}

//程序员新手,能力有限。如果注释有误希望评论区纠正,十分感谢!

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-27 12:39:41  更:2021-10-27 12:41:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:17:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码