#include <iostream>
using namespace std;
template <class T> inline T Max(T a, T b) { return a > b ? a : b; }
int main() { int a = 1, b = 2;
cout << Max(a, b) << endl; cout << Max(1.0, 2.0) << endl; cout << Max("hello", "world") << endl;
return 0; }
|
2.类模板
#include <iostream>
using namespace std;
template <class T> class A { private: T a; public: A(T x) { a = x; } T get() { return a; } };
int main() { A<double> a(10);
cout << a.get() << endl;
return 0; }
|
3.模板特殊化:当你在使用一个模板,而又想对某一个特殊的类型做不同的实现时,就需要一个特殊化的模板声明。
// template specialization #include <iostream> using namespace std;
// class template: template <class T> class specTemplate { T m_var; public: specTemplate (T inData) { m_var = inData; } T increase () { return ++m_var; } };
// class template specialization: template <> class specTemplate <char> { char m_var; public: specTemplate (char arg) { m_var = arg; } char upperCase () { if ((m_var >= 'a') && (m_var <= 'z')) m_var += 'A'-'a'; return m_var; } };
int main () { specTemplate<int> myint (7); specTemplate<char> mychar ('j');
cout << myint.increase() << endl; cout << mychar.upperCase() << endl; return 0; }
|
4.模板默认值:
template <class T = char, int N = 10> class Test {..};
|
1)模板的类型也可有默认值;
2)模板的类型也可以是regular type,并非一定是以class或typename修饰的类型;
分享到:
相关推荐
《C++ Template Metaprogramming Concepts, Tools, and Techniques from Boost and Beyond》是关于C++元编程的一本经典教材,适合那些对软件构造有深入兴趣的读者。元编程是C++语言的一个强大特性,它允许程序员在...
侯捷老师的《C++Template》一书深入浅出地介绍了C++模板的各个方面,包括基础概念、高级技巧以及实际应用,对于理解和掌握C++模板编程有着极大的帮助。通过阅读这本书,开发者可以更好地利用模板这一强大的工具,...
在标题“C++ Template中文版”以及重复的描述“C++ templatec++ templatec++ template”中,我们可以明确地了解到这份文档是关于C++模板(Template)的详细介绍。C++模板是C++语言中一个非常强大的特性,它允许...
这份"C++Template电子书及代码"资源为学习C++模板提供了宝贵的材料,下面我们将深入探讨C++模板的基础知识、应用场景以及一些高级特性。 1. 模板基础: - 函数模板:C++函数模板允许我们创建不依赖于特定数据类型...
C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond,《C++模板元编程》英文版。C++ In-Depth系列丛书之一,C++程序员必备。
这是C++ Template Metaprogramming原书附带的例子代码,可以方便各位进行研习,请首先编译开篇的第一个例子,以测试你手头的编译器对模板的支持程度。 另,有的亲反映上载的书无法打开,可能是Windows7进行了权限...
本资源——"C++ Template Metaprogramming"——提供了一个深入探讨这一领域的英文版指南。 模板是C++语言中的一个关键特性,它允许我们定义函数和类的通用模板,然后在不同类型的参数上实例化它们。模板元编程则是...
### C++ Template 全览知识点概述 #### 一、引言 C++模板自问世以来,在不断发展中成为了C++编程语言的重要组成部分。然而,由于其复杂性和灵活性,模板经常引发误解和争议。随着越来越多的开发者认识到模板的强大...
Addison Wesley - C++ Template Metaprogramming Concepts Tools And Techniques From Boost And Beyond
C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond
C++模板是C++语言中的一个强大特性,它允许程序员创建泛型代码,即能够处理多种数据类型的代码。模板在C++中分为两种主要类型:函数模板和类模板。候捷先生的《C++模板》中文版是一本深入探讨这个主题的教材,非常...
C++Template简体中文版、C++Template侯捷繁体版、C++Template第二版(英文版)三合一
C++ 模板是C++编程语言中的一个强大特性,它允许程序员定义泛型代码,即可以在多种数据类型上工作的代码。模板分为两种主要类型:函数模板和类模板。本篇将深入探讨C++模板的基本概念、使用方法以及在实际编程中的...
C++模板是C++语言中的一个强大特性,它允许程序员创建泛型代码,即能够处理多种数据类型的代码。模板在C++中分为两种主要类型:函数模板和类模板。本教程将深入探讨这两种模板以及相关的知识点。 首先,我们来看...
C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond By David Abrahams, Aleksey Gurtovoy Publisher : Addison Wesley Professional Pub Date : December...
自从泛型编程被引入C++中以来,程序员们已经发现用于当程序被编译时对其进行操纵的无数“tricks template”,这些tricks有效地消除了横亘在程序和元编程之间的藩篱。尽管C++专家们对这种能力的兴奋已经波及整个C++...