继续上一篇

#include <iostream>

using namespace std;

void swap1(int &v1, int &v2);
typedef void (FP_)(int&, int&);//必须在FP_使用前定义!!!
void func(int &v1, int &v2, FP_ fp); int main()
{
void (*fp)(int&,int&);//here, fp is a variable
cout<<"uninitialized function pointer:"<<fp<<endl; //warning!
fp=swap1;//initialized int v1=;
int v2=; fp(v1, v2);
cout<<v1<<"\t"<<v2<<endl; //****************
typedef void (*FP)(int&, int&);//define FP as a TYPE!
FP fp1=; //fp1 is a variable.
cout<<fp1<<endl;//
fp1=swap1; //initialized
cout<<fp1<<endl;// fp1(v1, v2);
cout<<v1<<"\t"<<v2<<endl; // FP_ fpx;
// fpx=swap1; //Error
// func(v1, v2, fpx);
func(v1, v2, swap1); //函数名就是函数类型的变量!!! return ;
} //函数
void swap1(int &v1, int &v2){
int tmp=v1;
v1=v2;
v2=tmp;
}
//函数类型的形参
void func(int &v1, int &v2, FP_ fp){
fp(v1,v2);
}

函数是类型(由返回值和形参列表确定),函数名则是该类型的变量!
typedef只是给这种类型取个别名,而这种类型实际上在定义函数的时候就已经存在了。
  
所以直接传入函数名即可!
  
目前的问题是:为什么定义了函数类型的变量f,却无法使用函数名(变量take)来赋值?

被告知:functions are not objects。

所以函数名当成变量名好像是有问题的???

C++函数类型的更多相关文章

  1. 明显调用的表达式前的括号必须具有(指针)函数类型 编译器错误 C2064

    看到“明显调用的表达式前的括号必须具有(指针)函数类型”这句时我才发现我的语文水平有多烂,怎么看都看不懂,折腾了半天才知道是哪里出了问题. 举个简单的例子 class CTest { void (CT ...

  2. Swift - 33 - 返回函数类型和函数嵌套

    //: Playground - noun: a place where people can play import UIKit /*---------------------------返回函数类 ...

  3. Swift - 32 - 函数类型

    //: Playground - noun: a place where people can play import UIKit func add(a:Int, b:Int) -> Int { ...

  4. C语言的函数类型

    C语言的函数类型与返回值类型不一致时出现,是以函数类型为标准; 而如果在java与c#语言中上述情况是编译错误的;

  5. 智能合约语言 Solidity 教程系列3 - 函数类型

    Solidity 教程系列第三篇 - Solidity 函数类型介绍. 写在前面 Solidity 是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解,如果你还不了解,建议你先看以 ...

  6. TypeScript 函数-函数类型

    //指定参数类型 function add(x:number,y:number){ console.log("x:"+x); // reutrn(x+y); } //指定函数类型 ...

  7. go 函数类型

    在go中,函数也可以被当成数据类型 e.g:下面有两个函数,+.-,然后定义了一个函数类型FuncType1,然后对funcType1附于不同的函数,则funcType1就可以执行相应的函数 pack ...

  8. TypeScript基础类型,类实例和函数类型声明

    TypeScript(TS)是微软研发的编程语言,是JavaScript的超集,也就是在JavaScript的基础上添加了一些特性.其中之一就是类型声明. 一.基础类型 TS的基础类型有 Boolea ...

  9. typescript函数类型接口

    /* 接口的作用:在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范,在程序设计里面,接口起到一种限制和规范的作用.接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部状态数据, ...

  10. Swift2.0语言教程之函数的返回值与函数类型

    Swift2.0语言教程之函数的返回值与函数类型 Swift2.0中函数的返回值 根据是否具有返回值,函数可以分为无返回值函数和有返回值函数.以下将会对这两种函数类型进行讲解. Swift2.0中具有 ...

随机推荐

  1. atcoder之A Great Alchemist

    C - A Great Alchemist Time limit : 2sec / Stack limit : 256MB / Memory limit : 256MB Problem Carol i ...

  2. [转]玩转UltraEdit,UE常见快捷键操作

    编辑器Ultraedit快捷键说到编辑器的快捷键,VIM是无与伦比的.要反对,也得是带脚踏板的EmaCS.UE还是有差距的,很大差距.注意:VIM是开源.免费的,而UE则需要注册.UE是Windows ...

  3. navicat 快速复制表所有字段

    查询-新建查询-查询创建工具-选择表-全选字段-查询编辑器

  4. C 指向指针的指针

    #include <stdio.h> int main() { char *cBooks[] = { "C程序设计语言", "C专家编程", &qu ...

  5. Java:集合,对列表(List)中的数据(整型、字符串、日期等)进行排序(正序、倒序)的方法;字符串按照整型排序的方法

    1. 要求 对List列表中的数据进行排序(正序.倒序),列表中的数据包括:整型(Integer).字符串(String).日期(Date)等.对于字符串,要求允许对它按照整型进行排序. 2. 实现思 ...

  6. git使用(一)----git安装

    windows安装git msysgit是windows版本的Git 下载地址:https://git-for-windows.github.io/ 安装步骤 linux安装git https://g ...

  7. JS操作Cookies的小例子

    这篇文章介绍了JS操作Cookies的小例子,有需要的朋友可以参考一下. 您可能感兴趣的文章:js 保存与获取cookie的代码javascript cookie操作实例详解javascript co ...

  8. 什么是WMS系统 金蝶仓库条码管理WMS系统介绍

    汉码盘点机-专注于傻瓜式的仓库条码管理系统,是当前出入库工作效率最高.数据最准确的仓库管理办法. "WMS,即q=%E4%BB%93%E5%BA%93%E7%AE%A1%E7%90%86%E ...

  9. cocos2d-x解决中文乱码问题的几种办法

    昨天改写cocos2d-x的例程,想在其基础上加上一个计分系统.没有分数实在让人没有玩下去的动力! 我在主场景上加上了一个CCLabelTTF,用于显示分数. 但是意外的发现,当内容含有中文时,CCL ...

  10. jQery的方法

    <!DOCTYPE html> <html> <head> <script type="text/javascript" src=&quo ...