zoukankan      html  css  js  c++  java
  • 函数模板示例(一)

    模板函数定义文件function1.h:

    #ifndef FUNCTION1_H
    #define FUNCTION1_H
    
    #include <cstring>
    #include <string>
    
    template <typename T>
    inline T const& max(T const&a , T const& b)
    {
        return a < b ? b : a;
    }
    
    template <typename T>
    inline T* const& max(T* const& a, T* const& b)
    {
        return *a < *b ? b : a;
    }
    
    inline char const* const& max(char const* const& a, char const* const& b)
    {
        return std::strcmp(a, b) < 0  ? b : a;
    }
    
    template <typename RT, typename T1, typename T2>
    inline RT max(T1 const& a, T2 const&b)
    {
        RT c = a < b ? (RT)b : (RT)a;
        return c;
    }
    
    #endif // FUNCTION1_H

    测试文件main.h:

    #include <iostream>
    #include <cstdlib>
    #include "function1.h"
    
    int main()
    {
        int a = 10;
        int b = 32;
        std::cout << ::max(a, b) << std::endl;
    
        std::string str1 = "hello";
        std::string str2 = "world";
        std::cout << ::max(str1, str2) << std::endl;
    
        int* p1 = &b;
        int* p2 = &a;
        std::cout << *::max(p1, p2) << std::endl;
    
        char const* s1 = "cat";
        char const* s2 = "hat";
        std::cout << ::max(s1, s2) << std::endl;
    
        return 0;
    }

    结果:

  • 相关阅读:
    vim 常用命令
    centos 安装mysql
    centos部署ftp
    centos 6.8部署nginx
    ndk学习16: unix domain socket
    ndk学习14: 进程
    ndk学习13: proc
    ndk学习11: linux内存管理
    ndk学习10: linux文件系统
    ndk学习9: 动态使用共享库
  • 原文地址:https://www.cnblogs.com/AmitX-moten/p/4448839.html
Copyright © 2011-2022 走看看