参考网址:http://c.biancheng.net/cpp/biancheng/view/213.html

// demo3.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <iostream>
using namespace std; template <class T>
class test
{
private:
T a,b;
public:
test(T m,T n)
{
a=m;
b=n;
}
T max()
{
return (a>b)?a:b;
}
T min();
};
template<class T>
T test<T>::min()
{
return (a>b)?b:a;
}; int _tmain(int argc, _TCHAR* argv[])
{
test <int> test1(2,3);
cout<<test1.max()<<endl;
cout<<test1.min()<<endl;
test<float> test2(32.12,12.458);
cout<<test2.max()<<endl;
cout<<test2.min()<<endl;
test<char> test3('a','A');
cout<<test3.max()<<endl;
cout<<test3.min()<<endl;
return 0;
}

使用类模板的好处就是,可以实现类的成员函数的复用而不用受数据类型的影响。

需要注意的,当把成员函数的实现放在类的外部时,例如上述test类的min()函数,需要加上:

template<class T>   //必不可少的
T test<T>::min()    //不要忘记<T>

main函数中定义test类的实例化对象时,也需要注意格式。

类模板 template<class T>的更多相关文章

  1. C++类模板 template <class T>

    C++在发展的后期增加了模板(template )的功能,提供了解决这类问题的途径.可以声明一个通用的类模板,它可以有一个或多个虚拟的类型参数. 比如: class Compare_int class ...

  2. c++类模板template中的typename使用方法-超级棒

    转载:https://blog.csdn.net/vanturman/article/details/80269081 如有问题请联系我删除: 目录 起因 typename的常见用法 typename ...

  3. C++:类模板与模板类

    6.3 类模板和模板类 所谓类模板,实际上是建立一个通用类,其数据成员.成员函数的返回值类型和形参类型不具体指定,用一个虚拟的类型来代表.使用类模板定义对象时,系统会实参的类型来取代类模板中虚拟类型从 ...

  4. HashTable类模板_C++

    好久没看数据结构了,今天终于要用到hash,整理一下写了个hash类模板 template<typename T> class DataType { public: T key; Data ...

  5. C++_进阶之函数模板_类模板

     C++_进阶之函数模板_类模板 第一部分 前言 c++提供了函数模板(function template.)所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体制定,用一个虚拟的类型来 ...

  6. C++学习笔记47:链表的概念与结点类模板

    学堂在线学习笔记 链表的概念与结点类模板 顺序访问的线性群体--链表类 链表是一种动态数据结构,可以用来表示顺序访问的线性群体: 链表是由系列结点组成,结点可以在运行时动态生成: 每一个结点包括数据域 ...

  7. C++复习:函数模板和类模板

    前言 C++提供了函数模板(function template).所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表.这个通用函数就称为函数模板.凡是函数体 ...

  8. mfc 类模板

    类模板 创建类模板 添加成员变量 添加成员函数 定义类模板对象 一.创建类模板 template <class T,class T2> template <class T> 二 ...

  9. C++ 函数重载、函数模板,类模板

    1.函数重载 相同作用域下,有多个函数名相同,但形参列表不同的函数,常用于处理功能相同但数据类型不同的问题 函数重载的规则: 函数名必须相同 函数形参列表必须不同(可以是参数个数不同,或者数据类型不同 ...

随机推荐

  1. -bash: lampp: command not found解决方案

    在/opt目录下安装完lampp后,需要到/opt/lampp/下执行lampp启动或者停止服务,如果在其余目录下执行lampp,会提示:-bash: lampp: command not found ...

  2. CENTOS install summary

    1 centos6.5 before version : first :ultraISO write into u disk,second: copy source iso file into u d ...

  3. List的add方法与addAll方法的区别

    add是将传入的参数作为当前List中的一个Item存储,即使你传入一个List也只会另当前的List增加1个元素addAll是传入一个List,将此List中的所有元素加入到当前List中,也就是当 ...

  4. Spark技术内幕:Client,Master和Worker 通信源码解析

    http://blog.csdn.net/anzhsoft/article/details/30802603 Spark的Cluster Manager可以有几种部署模式: Standlone Mes ...

  5. 在线HTML编辑器 kindeditor-4.1.10 上传图片文件 应用指南

    1.在ASPX页面中对应的head.body添加相应的红色部分 2.引用kindeditor-4.1.10中的litjosn.dll 3.在写入数据库时要替换相应的路径和IP 4.kindeditor ...

  6. 第十篇、HTML5实战篇——1

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <!--支持IE ...

  7. 在centos7中限制kvm虚拟机可访问的资源

    最近通过艰苦卓绝的度娘(我很想用谷歌,可是,你懂的),终于搞明白如何在centos7中限制kvm虚拟机可访问的资源了.度娘给出的结果中,大部分都说的很对,然而,却很难照着做,主要原因有两点:1.网上的 ...

  8. CSS高度塌陷

    问题描述:当父元素只包含浮动的元素的时候,且父元素没有设置高度,如果父元素设置了边框border,那么看起来子元素不在父元素之内. 比如这样: html: <div id="paren ...

  9. bzoj1002:[FJOI2007]轮状病毒

    思路:一道很裸的生成树计数问题,然而要高精度,而且听说直接行列式求值会被卡精度,所以可以模拟行列式求值的过程得到递推公式:f[i]=3*f[i-1]-f[i-2]+2,证明详见vfk博客: http: ...

  10. OpenJudge 2795 金银岛

    1.链接地址: http://bailian.openjudge.cn/practice/2795/ 2.题目: 总Time Limit: 3000ms Memory Limit: 65536kB D ...