模板

函数模板

 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 template<typename A>A Max(A a, A b);
 6 
 7 int main()
 8 {
 9     double x, y;
10     cin >> x >> y;
11     cout << "The max is:" << Max(x, y) << endl;
12     
13     int m, n;
14     cin >> m >> n;
15     cout << "The max is:" <<Max(m, n) << endl;
16     
17     long i, j;
18     cin >> i >> j;
19     cout << "The max is" <<Max(i, j) << endl; 
20     
21     return 0;
22 }
23 template<typename A>A Max(A a, A b){
24     return a > b ? a : b;
25 }
两个数之间的最大值

1.template <typename 类型参数1 , typename 类型参数2 , ...> 返回值类型  函数名(形参列表){
    //在函数体中可以使用类型参数
}

2.typename也可以使用class替代

类模板

1.template<typename 类型参数1 , typename 类型参数2 , …> class 类名{
    //TODO:
};

2.

自例
 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 template<typename T1,typename T2>
 6 class Point{
 7     public:
 8         Point(T1 x, T2 y):m_x(x), m_y(y){}
 9     public:
10         T1 getx() const;
11         void setx(T1 x);
12         T2 gety() const;
13         void sety(T2 y);
14     private:
15         T1 m_x;
16         T2 m_y;
17 };
18 
19 template<typename T1,typename T2>
20 T1 Point<T1, T2>::getx() const{
21     return m_x;
22 }
23 
24 template<typename T1,typename T2>
25 void Point<T1, T2>::setx(T1 x){
26     m_x = x;
27 }
28 
29 template<typename T1,typename T2>
30 T2 Point<T1, T2>::gety() const{
31     return m_y;
32 }
33 
34 template<typename T1,typename T2>
35 void Point<T1, T2>::sety(T2 y){
36     m_y = y;
37 } 
38 
39 int main()
40 {
41     Point<int, int> p1(10, 20);
42     cout << p1.getx() << p1.gety() << endl;
43     
44     Point<int, char*> p2(20, "东京20°");
45     cout << p2.getx() << p2.gety();
46     
47     return 0;
48 }
View Code

大话模板编程(选读)

1.站在变量定义和类型转换角度:

强类型语言:在定义变量时需要显示指明数据类型(C/C++,Java,C#等)

  弱类型语言:~~(JavaScript,Python,PHP,Ruby,shell等)

扫描二维码关注公众号,回复: 49378 查看本文章

从编译运行角度:

强类型语言在编译期间就能确认变量类型,但C/C++有时候并不会,所以,在这方面,C/C++是弱类型语言

2.不管是强类型语言还是弱类型语言,在编译器(解释器)内部都有一个类型系统来维护变量的各种信息。

3.强类型语言较为严谨,在编译时就能发现很多错误,适合开发大型的、系统级的、工业级的项目;而弱类型语言较为灵活,编码效率高,

部署容易,学习成本低,在 Web 开发中大显身手。另外,强类型语言的 IDE 一般都比较强大,代码感知能力好,提示信息丰富;而弱类型

语言一般都是在编辑器中直接书写代码。

4.模板所支持的类型是宽泛的,没有限制的,我们可以使用任意类型来替换,这种编程方式称为泛型编程(Generic Programming)。

大话C++模板编程(透彻)

猜你喜欢

转载自www.cnblogs.com/Mayfly-nymph/p/8919754.html
今日推荐