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"); }
相关文章推荐
- c++:深复制
- C++ 构造/析构函数中调用虚函数的问题
- C++实践——存储班长信息的学生类
- C++ 函数的扩展③--函数重载
- C++继承
- CString与char *互转总结
- C++ 函数的扩展②
- 微视图像(microview)gige相机开发手记(2)
- CString,string,char*之间的转换
- C++中的继承
- Effective C++ 笔记2(构造,析构,赋值)
- [leetcode] 【字符串】 38. Count and Say
- C++ 函数的扩展①
- C++ vector和list的区别
- [leetcode] 【字符串】13. Roman to Integer
- C语言三种预处理功能
- C++中关于全局对象的初始化顺序
- memset
- C++程序设计语言练习7.9 迭代器的使用
- C—文件操作