文档章节

函数模板在c++里面的坑

杭城小刘
 杭城小刘
发布于 2015/08/22 22:42
字数 291
阅读 125
收藏 2

1、函数重载

//
//  main.cpp
//  inlinefunction
//
//  Created by geek on 15/8/22.
//  Copyright (c) 2015年 geek. All rights reserved.
//
//函数重载,具有相同函数名不同函数参数
#include <iostream>
using namespace std;
int max(int num1,int num2){
    if(num1>num2){
        return num1;
    }else{
        return num2;
    }
}
double max(double num1,double num2){
    if(num1>num2){
        return num1;
    }else{
    return num2;
    }
}
double max(double num1,double num2,double num3){
    return max(num1,max(num2,num3));
    
}
int main(){
    int num1,num2;
    cout<<"请输入2个整数";
    cin>>num1>>num2;
    cout<<"较大整数为:"<<max(num1,num2);
    double num3,num4;
    cout<<"请输入2个浮点数";
    cin>>num3>>num4;
    cout<<"较大整数为:"<<max(num3,num4);
    double num5,num6,num7;
    cout<<"请输入3个浮点数";
    cin>>num5>>num6>>num7;
    cout<<"较大整数为:"<<max(num5,max(num6,num7));
    return 0;
}

2、函数模板

//
//  main.cpp
//  template
//
//  Created by geek on 15/8/22.
//  Copyright (c) 2015年 geek. All rights reserved.
//
//在使用模函数模版时不能使用using namespace std;
#include <iostream>
template <typename T>
T max(T num1,T num2){
    if(num1>num2){
        return num1;
    }else{
        return num2;
    }
    
}
int main(){
    printf("%d",max(5,7));
    return 0;
}


© 著作权归作者所有

杭城小刘

杭城小刘

粉丝 27
博文 116
码字总数 81048
作品 0
杭州
iOS工程师
私信 提问
加载中

评论(2)

杭城小刘
杭城小刘

引用来自“Micooz”的评论

根本原因是你的问题,using namespace std; 这个习惯不太好。
那就用std::cout<<...? 这样的写法吗?
Micooz
Micooz
根本原因是你的问题,using namespace std; 这个习惯不太好。
[C/C++]完整揭秘VS2010关于function和bind的实现

很久之前我就对C++里面的function非常感兴趣,也探究出了一些成果。 [C/C++]std::tr1::function源码剖析(一) [C/C++]std::tr1::function源码剖析(二) 这两篇文章是对VS2010中如何实现fun...

梁欢
2013/10/25
0
0
C++ 模板惯用法

原文:C++ 模板惯用法 作者:Breaker 关于 C++ 模板编程的惯用法,note-to-self + keynote + idiom case + cross-reference 式笔记 目录 模板语法 模板惯用法示例 堆栈上分配 编译优化的开关...

晨曦之光
2012/05/23
1K
0
CppCMS模板系统

CppCMS不知不觉已经用了很久了,产品也开发了几个。不过CppCMS的版本一直在演化,1.0已经正式发布,文档也在不断增加和更新。本篇从自己的体会谈谈模板系统(template system). 下面这篇文章系...

长平狐
2012/08/28
180
0
C++的include里面不带.h是设计失误?

前几天某人说:C++的头文件不带.h其实是设计失误。 给出了如下的理由: 旧的编译器的模板类的实现和声明必须放在同一文件内不然会有bug。这并不是什么值得提倡的事情…… 然后我就十分想不明...

東條・スペンサー・咲
2015/04/18
2.5K
10
用boost python加快vc程序开发

开源项目官方地址: http://www.xiaoniuhui.com/ 原文链接: http://xiaoniuhui.com/#!/用boost-python加快vc程序开发 目录 用标准c接口嵌入python 用boost python嵌入python 用python来实现业...

编码的风景
2013/08/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

rsync工具常用选项以及同步的两种方式

rsync -av /etc/passwd /tmp/1.txt #rsync的本机传输写法 rsync -av /tmp/1.txt 192.168.188.128:/tmp/2.txt #rsync的远程传输rsync格式rsync [OPTION] … SRC ......

林怡丰
今天
3
0
GatewayWorker 报错:stream_socket_server(): unable to connect to tcp://0.0.0.0:1238

GatewayWorker 报错:stream_socket_server(): unable to connect to tcp://0.0.0.0:1238 (Address already in use) 官方文档虽然有相同的问题,但是对我的问题没起作用…… 后面发现自己手贱...

wenzhizhong
昨天
3
0
REST接口

文章来源 https://zhuanlan.zhihu.com/p/28674721?group_id=886181549958119424 http://www.ruanyifeng.com/blog/2014/05/restful_api.html REST 对请求的约定 REST 用来规范应用如何在 HTTP......

Airship
昨天
5
0
Spring Cloud Config 统一配置中心

Spring Cloud Config 统一配置中心 一、统一配置中心 统一管理配置 通常,我们会使用配置文件来管理应用的配置。如一个 Spring Boot 的应用,可以将配置信息放在 application.yml 文件中,如...

非摩尔根
昨天
6
0
android ------ AAPT2 error: check logs for details解决方法

AAPT 是全称是 Android Asset Packaging Tool,它是构建 App,甚至是构建 Android 系统都必不可少的一个工具。它的作用是将所有资源文件压缩打包到Android APK 当中。我们在 Android SDK 目录...

切切歆语
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部