`
墙头上一根草
  • 浏览: 154681 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

c++ 模板以及函数指针

    博客分类:
  • c++
阅读更多

#include "stdafx.h"
#include "Power.h"
#include <iostream>

using namespace std;

/*定义模板---单个类型*/
template <class T> T add(T a,T b);
/*定义模板---多个类型*/
template <class TReturn,class TArgs> TReturn addData(TArgs a,TArgs b);
/*定义模板的说明*/
//template<> long* add<long*>(long *a,long *b);

//这个是声明一个函数,此函数返回值是一个long型的指针,然后还有两个参数一个是指针另外一个是int
long *pFunAdd(long *args,int count);

//声明函数指针 返回值是一个long 然后还有两个参数一个是指针另外一个是int  这个函数指针可以指向任何有同样参数以及返回值的函数
long (*pFun)(long *args,int count);

int main()
{

    //Power *power = new Power();

    //cout<<"power cal resut"<<power->calPower(2,5);

    //cout<<"计算某个数的平方"<<Power::calPingFang(2)<<endl;

    //delete power;

    //power =NULL;

    //int value = 10;

    //int result = Power::change_it(value);
    //cout<<"计算 + 10的值"<<value<<"当前值:"<<result<<endl;

    //int result = Power::change_it(&value);
   
    //cout<<"计算 + 10的值"<<value<<"当前值:"<<result<<"静态变量的值:"<<1<<endl;

    int result = add(1,2);

    cout<<"当前的计算INT结果为:"<<result<<endl;
    //可以指定模板类型 如以下的指定参数类型
    cout<<"当前的计算float结果为:"<<add<float>(1.0,3.0)<<endl;
    cout<<"当前的计算double结果为:"<<add<double>(1.0,3.0)<<endl;
    long a = 30;
    long b = 40;

    cout<<"模板说明计算获得结果为:"<<add<long*>(&a,&b)<<endl;

    //对于多个参数的指定类型或者是参数类型 也单个的是一样的
    //可以只指定返回类型,因为参数类型,可以编译的时候匹配,不用指定
    //add<int,double>(1.0,3.0);
    system("pause");

    return 0;

}

template <class T> T add(T a,T b){
    return a+b;
}

//template<> long* add<long*>(long *a,long *b){

//    return *a>*b?a:b;
//}

/*模板的重载*/
long* add<long*>(long *a,long *b){

    return *a>*b?a:b;
}

分享到:
评论

相关推荐

    c++ 函数指针和回调的使用

    下面我们将深入探讨普通函数指针、同一类的成员函数指针以及不同类的成员函数指针的使用。 首先,让我们了解**普通函数指针**。普通函数指针是C++中一种基础的数据类型,可以存储任何无参数或具有特定参数类型的...

    C++ 一般(普通)函数指针、类成员函数指针,用法区别,以及强制转换

    在实际编程中,理解函数指针的这些概念至关重要,因为它们是许多高级C++技术的基础,如回调、事件处理和模板元编程。`函数指针.cpp`、`StdAfx.cpp`、`函数指针.dsp`、`函数指针.dsw`和`StdAfx.h`等文件可能包含示例...

    函数指针万能打印_C++_VS_

    在C++编程中,函数指针是一个非常强大的工具,它允许我们将函数作为其他函数的参数或者存储在变量中。在本示例中,“函数指针万能打印”着重讲解如何利用函数指针实现一个通用的打印系统,可以适应各种数据类型的...

    c++ 成员函数指针

    C++中的成员函数指针是一种特殊的指针类型,它可以指向类的成员函数。在C++中,函数本身不是对象,因此不能直接赋值给普通指针。但是,成员函数指针允许我们存储对特定对象成员函数的引用,以便稍后调用。这种机制在...

    函数指针与指针函数应用程序

    文档可能还会涵盖一些高级主题,如回调函数、函数指针数组、以及与C++模板和STL容器的结合使用。 总之,理解和掌握函数指针和指针函数对于提升C/C++编程技能至关重要,它们能让你编写出更高效、更灵活的代码,应对...

    成员函数指针与高性能的C++委托

    ### 成员函数指针与高性能的C++委托 在C++中实现类似C#或Java等面向对象语言中的委托功能是一项挑战但也极具价值的技术实践。本文将深入探讨如何利用成员函数指针来创建高效的C++委托,并分析其背后的原理和技术...

    深入理解C语言指针的奥秘 C和C++中函数指针的含义(上).pdf

    在C++中,函数指针同样可以使用,但多被重载函数、虚函数和模板函数等机制所覆盖。 函数指针的一个典型应用就是实现事件驱动编程,比如在图形用户界面(GUI)编程中。在这种情况下,将函数指针赋值给控件的事件处理...

    C++day16-函数指针-模版

    在C++编程语言中,函数指针和模板是两个非常重要的概念,它们分别提供了不同的功能增强和代码复用机制。让我们深入探讨这两个主题,并通过源码分析来理解它们的应用。 首先,函数指针允许我们将函数作为其他函数的...

    详解了C++中的模板,位运算,虚函数表 方面的东西

    函数模板可以让我们编写一个通用的函数,该函数能够处理不同类型的参数,例如`std::swap`函数就是一个模板函数。类模板则用于创建可以接受不同类型参数的通用类,如`std::vector`和`std::map`。模板元编程是模板的一...

    C++结构体/函数定义转换C#函数定义/结构体

    - C++的模板函数无法直接转换,可能需要创建多个C#方法来模拟。 4. **DLL互操作**: - 提供的文件中有`.dll`文件(如:sigimplib.dll、sigexplib.dll、siggenui.dll),这些通常是C++编译的动态链接库。在C#中,...

    c++模板经典书籍

    - 允许模板接受其他模板作为参数,例如`std::function`可以接受任何可调用对象,包括函数指针、成员函数指针和具有适当调用约定的类模板。 5. **模板的依赖性解析**: - 在模板的实例化过程中,编译器会尝试解析...

    模板和智能指针(c++)

    这个模板函数接受两个类型相同的参数,并根据它们之间的大小关系返回-1、0或1。通过使用模板,我们不再需要为每种数据类型(如`int`、`double`或`string`)编写单独的函数,减少了代码重复。 模板的定义通常以`...

    C++中回调函数及函数指针的实例详解

    同时,需要注意的是,由于C++支持模板和STL,现代C++倾向于使用函数对象(functors)和lambda表达式来代替原始的函数指针,因为它们提供了更强的类型安全性和更简洁的语法。不过,理解函数指针和回调函数的基础对于...

    c++的常用函数使用手册

    4. **函数指针**:C++中的函数可以被赋值给指针,这使得可以将函数作为参数传递给其他函数,或者存储在数据结构中,增强了程序的灵活性。 5. **模板函数**:模板允许我们编写泛型代码,即不依赖具体数据类型的函数...

    函数指针的使用实例

    函数指针的使用,主要用到typedef,其实现功能跟模板类差不多

    c++函数指针和回调函数示例

    - 宏和模板元编程:函数指针可以与宏和模板元编程结合,生成更复杂的代码结构。 总结,C++中的函数指针和回调函数是强大的工具,它们提供了对程序流程的动态控制和高度的灵活性。理解和熟练掌握这些概念对于编写...

    C++模板全览

    C++模板是编程语言中的一个强大特性,它允许程序员创建泛型代码,即代码可以处理多种数据类型。这篇由侯捷等译的《C++ Templates:The Complete Guide》全面介绍了C++模板的各个方面,旨在帮助开发者更高效地利用这...

    由浅入深学习C++模板

    ├─函数指针模板 │ ├─FuncTemplate1 │ ├─FuncTemplate2 │ └─FuncTemplate3 └─模板学习 ├─初学模板(中1) ├─初学模板(中2) ├─初学模板(中3) ├─深学模板 1 ├─深学模板 2 ├─深学模板 3 ...

    函数指针详解[文].pdf

    本文详细介绍了函数指针在C++中的应用和使用,包括基本概念、函数指针数组以及指向函数指针数组的指针,并简要提及了函数指针与类成员的关联。 1. **基本的函数指针** 在C++中,函数可以被视为一等公民,它们可以...

    C、C++函数辞典.chm

    C++中的函数可以分为普通函数、成员函数、友元函数、重载函数、模板函数、静态成员函数等。其中,成员函数是类的一部分,如构造函数和析构函数,用于对象的创建和销毁;友元函数可以访问类的私有和保护成员;重载...

Global site tag (gtag.js) - Google Analytics