类模板和函数模板的区别及其应用案例 c++ 简单易懂
函数模板和类模板的区别在于:
1.函数模板有自动类型推导,但是类模板没有自动类型推导,
只能用显式指定类型来实例化类模板中的对象
2.函数模板不可以有默认参数,但是类模板允许有默认参数
当类模板中有默认参数的时候,就可以把显示指定类型的参数去掉
如果两者的类型是一致的话
分别用两个测试案例进行举例
#include<iostream>
using namespace std;
template<typename agetype,typename nametype>
class person
{public:person(agetype age, nametype name){this->m_age = age;this->m_name = name;}void showperson(){cout << "姓名为" << this->m_name << "\t" << "年龄为" << this->m_age << endl;}agetype m_age;nametype m_name;
};
template<typename agetype=int, typename nametype=string>
//模板的默认参数,注意类模板中默认参数的写法
class animal
{public:animal(agetype age, nametype name)//模板的默认参数{//注意类模板中默认参数的写法this->m_age = age;this->m_name = name;}void showanimal(){cout << "名字为" << this->m_name << "\t" << "年龄为" << this->m_age << endl;}agetype m_age;nametype m_name;
};
void test01()
{//1.函数模板有自动类型推导,但是类模板没有自动类型推导,
//只能用显式指定类型来实例化类模板中的对象//person p1(18, "张三");//错的,因为类模板中没有自动类型转换person <int, string>p1(19, "张三");//只能用显示指定类型的方式进行对象的初始化操作p1.showperson();
}void test02()
{//函数模板不可以有默认参数,但是类模板允许有默认参数//当类模板中有默认参数的时候,就可以把显示指定类型的参数去掉//如果两者的类型是一致的话animal<>p1(18, "小猫");p1.showanimal();
}
int main(void)
{test01();test02();system("pause");
}
类模板和函数模板的区别及其应用案例 c++ 简单易懂相关推荐
- C++提高部分_C++类模板与函数模板的区别---C++语言工作笔记088
然后我们再去看看类模板和函数模板的区别, 类模板没有自动类型推导,这一种使用方式. 类模板在模板参数列表中是可以有默认参数的. 用例子去说明一下,可以看到我们写了一个Person类,然后 这个类有两个 ...
- 类模板与函数模板区别
类模板与函数模板区别主要有两点 类模板没有自动类型推导的使用方式 类模板在模板参数列表中可以有默认参数 测试代码 #include <iostream> #include <stri ...
- C++模板学习02(类模板)(类模板语法、类模板与函数模板的区别、类模板中的成员函数创建时机、类模板对象做函数参数、类模板与继承、类模板成员函数类外实现、类模板分文件编写、类模板与友元)
C++引用详情(引用的基本语法,注意事项,做函数的参数以及引用的本质,常量引用) 函数高级C++(函数的默认参数,函数的占位参数,函数重载的基本语法以及注意事项) C++类和对象-封装(属性和行为作为 ...
- 模板 (函数模板语法 ,类模板与函数模板的区别,:函数模板案例,普通函数与函数模板的区别,普通函数与函数模板调用规则,模板的局限性,类模板分文件编写.cpp,Person.hpp,类模板与友元)
**01:函数模板语法: #include<iostream> using namespace std;//交换两个整型函数 void swapInt(int &a ,int &a ...
- 模板类与类模板、函数模板与模板函数等的区别
在C++中有好几个这样的术语,但是我们很多时候用的并不正确,几乎是互相替换混淆使用.下面我想彻底辨清几个术语,这样就可以避免很多概念上的混淆和使用上的错误. 这几个词是: 函数指针--指针函数 数组指 ...
- C++模板-33-类模板和函数模板的区别
这篇开始学习类模板相关知识,本篇主要学习什么是类模板,还有类模板和函数模板的区别 1.类模板语法 template <class T> 类 模板声明下面是函数就是函数模板,如果是类就叫类模 ...
- C++设计模式由浅入深(二)—— 类模板和函数模板
二.类和函数模板 C++的模板编程特性是一个又大又复杂的话题,有许多著作专门传授这种特性和技巧.在本书中,我们会用到许多C++中的高级泛型编程特性.那么我们该如何去理解贯穿次数中的这些语言结构呢?本章 ...
- C++_static,类模板、函数模板、namespace
C++_static,类模板.函数模板.namespace 1.static 2.类模板 3.函数模板 4.namespace 5.深入,更多细节 参考:侯捷<C++面向对象高级编程>
- 【C++ 语言】面向对象 ( 模板编程 | 函数模板 | 类模板 )
文章目录 函数模板 类模板 代码示例 函数模板 1. 模板编程 : 类似于 Java 中的泛型编程 ; ① 函数模板 : 对应着 Java 中的泛型方法 ; ② 类模板 : 对应 Java 中的泛型类 ...
最新文章
- 中文文本情感分析-python包SnowNLP入门
- win10安装问题小结
- 怎么看待MYSQL的性能
- SVN missing 解决
- vue-cli结构介绍
- [转帖]成功者的十四项心理定律
- 一个前端写的php博客系统--支持markdown哦
- 3dmax全局材质灯光细分插件_【3D脚本插件】如何利用插件快速修改全局灯光材质细分...
- 批处理访问服务器共享文件夹,批处理设置文件访问权限的方法分享
- Python爬取某短视频热点
- matlab gui输入函数,紧急求助!关于matlab中GUI用户图形界面通过edit输入调用函数问题!...
- 不用PyScript,网页端运行的Python编辑器
- mysql存储过程之错误处理
- noip 2018游记
- 10、Kafka 消息订阅系统
- 计算机簇的定义,代数簇
- 购买商品复选框全选 单选
- 计算机考试的雷区,驾照场考技巧与科目三电子路考雷区整理
- node.js热启动
- Livox Lidar+海康Camera实时生成彩色点云