您的位置:首页 > 编程语言 > C语言/C++

C++ 函数的扩展④--函数重载与函数指针

2016-06-15 16:38 344 查看
//函数扩展--函数重载与函数指针
#include<iostream>
using namespace std;

//函数参数类型不同
void Fuc(char * b){
printf("%s\n",b);
}

//函数参数个数不同
int Fuc(int a, int b){
return a + b;
}

//函数参数类型不同
void Fuc2(const char * b){
printf("%s\n", b);
}

void main(){
//定义函数指针类型
//引申  定义数组类型
typedef int MyArr[10];//定义了一个 int a[10]的数组
MyArr a;
typedef int(*MyArrP)[10];//定义了一个 int a[10]的数组类型指针
MyArrP p = &a;

//函数指针类型(这里也验证了 函数重载的函数都是不同函数类型的)
typedef int(*FuncP)(int, int);
FuncP p1 = Fuc;//Fuc是一个函数名,函数名代表函数的入口地址,函数名就是函数指针变量
typedef void(*FuncP2)(char *);
FuncP2 p2 = Fuc;
p2("函数指针你好!");

typedef void(*FuncP3)(const char *);
typedef void(*FuncP4)(char *);
//注意 定义函数类型的时候  const 等关键字也不能省略
FuncP3 p3 = Fuc2;
//FuncP4 p4 = Fuc2;
//报错 error C2440: “初始化”: 无法从“void (__cdecl *)(const char *)”转换为“FuncP4”
system("pause");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: