zoukankan      html  css  js  c++  java
  • c++ template-笔记

    http://my.oschina.net/hnuweiwei/blog/268451

    如果一段代码除了类型不同,其他都相同,使用模板可以避免重复的工作

    模板是一些为多种类型编写的函数或类,类型未指定。使用模板时,把类型作为参数传递给模板。

    模板使用非常广泛,c++标准库几乎所有代码都是模板代码

    head.h

    1 template <typename T>
    2 inline T const & maxer(const T & a, const T &b) {
    3     return a > b ? a : b;
    4 }

    Main.cpp

     1 #include <cstdlib>
     2 #include<iostream>
     3 #include"head.h"
     4 using namespace std;
     5 int main()
     6 {
     7     cout << "maxer(1,2)is" << maxer(1, 2) << endl;
     8     cout << "maxer(1.1,2.4)is" << maxer(1.1, 2.4) << endl;
     9     cout << "maxer('a','b')is" << maxer('a', 'b') << endl;
    10     cout << "maxer<double>(1,1.2)is" << maxer<double>(1, 1.2) << endl;
    11     system("pause");
    12     return 0;
    13 }

    模板被编译了两次,一次是实例化之前检查模板本身,另一次是实例化期间检查类型或调用,

    模板可以被重载,可以和一个同名的非模板函数共存,而且该模板还可以转化为这个非模板函数。对于非模板函数和同名的模板函数,

    如果其他条件都相同重载解析过程会调用非模板函数

    如果模板可以产生一个更好的匹配则选择模板函数

    Coding
  • 相关阅读:
    找回感觉的练习
    Java住房公积金管理系统---长春工业大学期末实训
    11.6_Filter
    11.5_Listener
    11.4_Ajax & Jquery
    11.3_MVC设计模式
    11.2_数据库连接池&DBUtils
    11.1_事物
    10.7_JSP & EL & JSTL
    10.6_Cookie&Session
  • 原文地址:https://www.cnblogs.com/ccie-leon-43093/p/5452219.html
Copyright © 2011-2022 走看看