`
墙头上一根草
  • 浏览: 149199 次
  • 性别: 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;
}

分享到:
评论

相关推荐

    函数指针的使用实例

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

    由浅入深学习C++模板

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

    C++_虚函数表解析

    C++_虚函数表解析 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这...

    C++虚函数表解析

    比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数的实现...

    C语言代码和C++代码--指针、多线程、文件读写、套接字

    9函数指针 C++: C++_02_构造和析构 C++_03.6_继承和派生 C++_03.7_person类 C++_04.1_指针(冒泡排序) C++_05.1_多态(运算符重载) C++_06.2多线程(简单的) string、vector 图形设备(例) C++_06_3_多线程和...

    黄邦勇帅C++专题讲解

    C++模板专题 C++名称空间与作用域专题 C++类中的各种成员,嵌套类,友元,this指针专题 C++继承,虚函数与多态性专题 C++宏,预处理器,RTTI,typeid与强制类型转换专题 C++函数专题 C++构造函数,复制构造函数和析构函数...

    循环链表的C++模板实现

    循环链表的C++模板实现, template &lt;class Type&gt; class CircList { public: CircList ( Type value ); //构造函数 CircList ( Type value,CircListNode&lt;Type&gt; *point ):data(value),link(point){} ~CircList ...

    利用C++模板的C到Lua简易封装库

    自己完成的,简易的C到Lua简易封装库,取名LuaMe,利用了C++模板,只支持C语言的函数和结构体的封装。支持指针形式的数组访问,支持结构体封装,支持以结构体指针形式作为参数和返回值。支持一级指针。理论上支持多级...

    C++ 虚函数表解析

    C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。...

    C++回调函数的2个DEMO程序,整理修改by唐太咸

    需要注意的是本DEMO需要提前在Call中声明回调函数的指针,返回值,参数以及它们的类型 2.另外一个tcFunctionTemplate是使用std::function模板和std::bind,支持全局和类成员函数作为回调函数,我在VS2010下编译通过

    C++动态数组类模板

    动态数组类模板Array C++ //数组类模板声明 template class Array { public: Array(int sz = 50); Array(const Array&lt;T&gt; &A); ~Array(void); Array&lt;T&gt;& operator = (const Array&lt;T&gt; &rhs;); //重载=,使数组...

    华为C++中级训资料。ppt讲解类 接口 运算符重载 模板 word讲解 C++语言中级教材讲授C++语言的运用技术,包括:类、对象之间的关系、对象的存储与布局、运算符重载、智能指针、仿函数、泛型编程,C++模式设计基本思想。

    华为 C++ 培训资料 经典 ...word讲解C++语言中级教材讲授C++语言的运用技术,包括:类、对象之间的关系、对象的存储与布局、运算符重载、智能指针、仿函数、泛型编程,C++模式设计基本思想。下载看吧

    C++智能指针-unique-ptr智能指针详解.pdf

    和可以⽤ make_shared() 模板函数初始化 shared_ptr 指针不同,C++11 标准中并没有为 unique_ptr 类型指针添 加类似的模板函数。 3) 基于 unique_ptr 类型指针不共享各⾃拥有的堆内存,因此 C++11 标准中的 unique_...

    从c到c++ EFFECTIVE_C++2E

    例如,C++程序员会认为指针的指针看起来很 古怪,他们会问:为什么不用指针的引用来代替呢? C 是一种简单的语言。它真正提供的只有有宏、指针、结构、数组和函数。 不管什么问题,C 都靠宏、指针、结构、数组和...

    C++智能指针.pdf

    C++ 标准库有四种智能指针:auto_ptr,unique_ptr,shared_ptr,weak_ptr(auto_ptr 是 C++98 标准的,其余都是 C++11 标准推出的,auto_ptr 现在已经不再使⽤了),C++11 这三种智能指针都是类模板。 ⼆ ⼆. ...

    自定义循环缓存C++模板实现

    实现函数包括单个数据的读写(pop_front、push_back)、可读可写空间大小的判断(read_space()、write_space())、段数据的读写(write_to_buffer()、read_from_buffer())、读写指针的调整、缓存空间大小的调整(resize)...

    c++11智能指针解析——揭开底层面纱,完整理解智能指针.pdf

    c++11智能指针解析——揭开底层⾯纱,完整理解智能指针 昨天跟同事⼩⼩的研究了下关于不同平台下的字节对齐问题,起因是遇到了⼀个坑,vs上没有问题,在安卓上却崩溃了。找了半天后发现是 c++字节补齐问题,期间包括...

    smartptr——基于自动引用计数的智能指针

    智能指针相信大家听说过吧,我理解的智能指针,既是一个C++模板类,重载了指针操作符(-&gt;)和(*)操作符,而使它的实例可以"用指针的形式去调用"。 它可以接管任意类型的指针,所以你只需要放心大胆的new出任意对象...

Global site tag (gtag.js) - Google Analytics