吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3081|回复: 4
收起左侧

[C&C++ 转载] 模板函数和函数指针的简单配合

  [复制链接]
山野村夫-陈墨 发表于 2019-6-20 12:11
一、废话开始:前几天发现,原来c++还有模板函数函数指针,所以这个帖子刚开始学c++小伙伴的可以看看,对入门c++的没有意义。
    1、 模板函数:好像也叫“类模板”。也就是这个东西:
   
[C++] 纯文本查看 复制代码
template  <class  a>a    max(a, data, a data2){
    return data>data2?data:data2;
}

    它是干什么的呢 ?举个例子,避免求小数和整数的最大时写两个函数。class a, a可以是double、int 、float,char.
    2、函数指针:指向函数地址的指针。理解为int的指针也行嘛,就这个玩意:
[C++] 纯文本查看 复制代码
#include <iostream>using namespace  std;
int max(int a,intb){
     return a>b?a:b;
}

int main(){
   int(*p)(int,int) = max;//是他是他就是他,函数指针呀
   return 0;
}

二、办事,功能:求整数,小数的最大值、最小值、平均值
[C++] 纯文本查看 复制代码
#include <stdio.h>
#include <iostream>
using namespace std;

/******模板函数的使用**********/
template <class  A>
A  max(A a,A b){
     return a>b?a:b;
}

template <class  A>
A  min(A a, A b){
     return a<b?a:b;
}

template <class  A>
A age(A a,A b){
     return (a+b)/2;
}
/******模板函数的使用**********/

/******  提示字符初始化**********/
char  *des[]={"最大值","最小值","平均数",};


int main(){


    int  a,b;
    int (*p[])(int ,int ) = {max,min,age}; ///整数的函数指针
/****int :函数的返回类型**********/
/****(*p[]):函数指针数组,存放多个函数 **********/
/**** (int, int ): 函数参数类型 **********/
/****  {max,min,age}: 函数指针初始化**********/

    double c,d;///小数的函数指针
    double (*p1[])(double ,double) = {max,min,age};

    while(cin>>a>>b){
        cin>>c>>d;
        for(int i=0; i< sizeof(p)/sizeof(p[0]); i++){
/****  sizeof(p)/sizeof(p[0]): 指针中函数的个数**********/
            cout<<des[i]<<": "<<p1[i](c,d)<<endl;///函数指针的使用
            cout<<des[i]<<": "<<p[i](a,b)<<endl;
            }
    }
    return 0;

}


三、一点见解:
     就个人而言,指针学得不好,所以对函数指针是敬而远之,了解一点,不怎么使。
但是有些函数库里有这个东西,知道一点,看其他函数也轻松。

免费评分

参与人数 1吾爱币 +3 热心值 +1 收起 理由
苏紫方璇 + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wildlifexs 发表于 2019-7-12 00:18
函数指针还是很有用武之地的
 楼主| 山野村夫-陈墨 发表于 2019-7-15 22:50
wildlifexs 发表于 2019-7-12 00:18
函数指针还是很有用武之地的

怎么说?
毕竟C语言或者C++的优点是有指针,但缺点也是有指针,接近底层,但是麻烦啊
1毛钱雪糕 发表于 2019-8-18 14:03
zyr230 发表于 2019-8-18 18:43
C语言的架构的函数指针是成也指针败也指针
雨落荒原 发表于 2019-8-18 22:19
用好了,很方便的,可以把一堆同类的函数封装成一个,再用一个结构体数组就可以循环调用一个,执行不同的功能了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 13:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表