//函数扩展--函数重载与函数指针
#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[];//定义了一个 int a[10]的数组
MyArr a;
typedef int(*MyArrP)[];//定义了一个 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++ 函数的扩展④--函数重载与函数指针的更多相关文章

  1. sqlserver 只有函数和扩展存储过程才能从函数内部执行

    一个SQLServer的自定义函数中调用一个自定义的存储过程,执行此函数后发出如下提示:“只有函数和扩展存储过程才能从函数内部执行". 原因:函数只能使用简单的sql语句,逻辑控制语句,复杂 ...

  2. C++中基于成员函数是否是const重载成员函数

    C++pimer中文版第四版 378页 基于const的重载 如果我们要在一个类的成员函数中定义两个函数签名完全一样的成员函数,比如display,那么可以基于是否是const成员函数来重载.比如: ...

  3. C++中对C的扩展学习新增语法——函数重载

    函数重载 1.函数重载语法 1.同一个作用域(全局作用域.命名空间作用域.类作用域) 2.参数个数不同 3.参数类型不同 4.参数顺序不同 代码实现: 当函数名字一样的时候,通过参数类型.参数个数.参 ...

  4. 编译器对C++ 11变参模板(Variadic Template)的函数包扩展实现的差异

    编译器对C++ 11变参模板(Variadic Template)的函数包扩展实现的差异 题目挺绕口的.C++ 11的好东西不算太多,但变参模板(Variadic Template)肯定是其中耀眼的一 ...

  5. 重载 C 函数

    在 clang 的扩展下,可以重载 C 函数,例如重载 sin 函数: float __attribute__((overloadable)) sin(float x) { return sinf(x ...

  6. C++基础——运算符重载友元函数示例

    一.前言 其实本人学习C++的目的,只是为了体会OOP设计思想,并为利用System Verilog验证复杂设计做准备.如果想要真正做点软件方面项目级的东西,还需要掌握其他高级语言和库.框架等知识.因 ...

  7. C++ 函数的扩展①

    //函数扩展--内联函数 inline #include<iostream> using namespace std; /* c++中const常量可以替代宏常数定义 如: const i ...

  8. C++深度解析教程学习笔记(3)函数的扩展

    1.内联函数 1.1.常量与宏的回顾 (1)C++中的 const 常量可以替代宏常数定义,如: ; //等价于 #define A 3 (2)C++中是否有解决方案,可以用来替代宏代码片段呢? 1. ...

  9. 虚函数的使用 以及虚函数与重载的关系, 空虚函数的作用,纯虚函数->抽象类,基类虚析构函数使释放对象更彻底

    为了访问公有派生类的特定成员,可以通过讲基类指针显示转换为派生类指针. 也可以将基类的非静态成员函数定义为虚函数(在函数前加上virtual) #include<iostream> usi ...

随机推荐

  1. C#基础视频教程3.1 常见控件类型和使用方法

    可以从左侧的工具箱中找到常见的控件(你要在Form1这种窗体上)   为了方便你也可以把工具箱整个拖过去,这样从上到下控件都给你排好了   对于按钮来说,最常见的就是他的背景颜色,文字,字体,还有是否 ...

  2. sed 命令编辑文本

    1.sed 概述 sed 是一个非交互式文本编辑器.它能够对文本文件和标准输入进行编辑,标准输入能够是来自键盘输入.文件重定向.字符串.变量.甚至来自于管道文本. 2.sed工作流程简述 sed在处理 ...

  3. vcs github gitlab git名词解释

    vcs:version control system git:一个版本管理工具,从git上clone,除了代码,还会把版本信息也给你clone下来. github:一个基于git的代码管理网站,支持公 ...

  4. CentOS 6.3系统安装配置KVM虚拟机

      作业环境 服务器端 操作系统:CentOS 6.3 final x86_64 IP: 133.133.10.50 Hostname:myKVM KVM:qemu-kvm-0.12.1.2-2.29 ...

  5. cxf利用接口规范写法发布webservice

    package cn.itcast.cxf; import javax.jws.WebService; @WebService public interface IHelloService { pub ...

  6. IT路上的应该注意自我规划 学习规划与自我修炼

    http://www.nowamagic.net/librarys/veda/detail/607 IT路漫漫,你需要明确自己所处的位置,并作出相应的规划,这条路才能够走得更加顺畅.下面是参考: 初学 ...

  7. spring 3.0系统集成webservice

    spring 3.0系统集成webservice,踩了很多坑以后总算成功了,故写下这篇博客以记录. 1.准备jar包 由于项目是spring3.0,所以应该要使用cxf 2.7版本才可以成功配置,高版 ...

  8. unity, ugui button 禁止重复点击

    如上图,button名称为btn_sim,当点击button后,开始播放zoomToTarget动画.为了防止在动画播放过程中再次点击button导致动画被打断,希望当首次点击button后butto ...

  9. java开发常用到的jar包总结

    commons-io.jar: FileUtils 读取文件所有行 File file = new File("c:\\123.txt"); List<String> ...

  10. (Xilinx)FPGA中LVDS差分高速传输的实现

    https://wenku.baidu.com/view/24e8bad86f1aff00bed51ef8.html