//函数扩展--函数重载与函数指针
#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. 反编译示例:mxd检查

    gisoralce在博客园发布了一个mxd检查工具,主要功能是将arcgis的mxd数据源有效性(含矢量和影像)检查.检查是否为相对路径,自动保存为相对路径. 这是一个未加壳的.NET程序,正好拿来练 ...

  2. UNIX网络编程读书笔记:基本UDP套接口编程

    概述 使用UDP编写的一些流行的应用程序有:DNS(域名系统).NFS(网络文件系统)和SNMP(简单网络管理协议). 如下图所示,给出了典型的UDP客户/服务器程序的函数调用: 客户不与服务器建立连 ...

  3. android路径获取

    //内部路径 Environment.getDataDirectory()=/data Environment.getDownloadCacheDirectory()=/cache Environme ...

  4. MVC4 WebApi开发中如果想支持Session请做好如下几个方面的问题

    1.在WebApiConfig中建立建立HttpControllerHandler和HttpControllerRouteHandler 并覆写它 public class SessionRouteH ...

  5. 14-spring学习-变量操作

    表达式所有操作都是可以以变量形式出现的. 观察变量的定义: package com.Spring.ELDemo; import org.springframework.expression.Evalu ...

  6. C++设计模式实现--职责链(Chain of Responsibility)模式

    一. 概述 职责链模式: 使多个对象都有机会处理请求.从而避免请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止. 二. 举个样例 员工要求加薪 ...

  7. 【APP接口开发】chrome浏览器DHC工具安装使用(亲测有效)

    1.DHC文件获取地址:http://chromecj.com/web-development/2015-08/549/download.html 2.chrome安装DHC插件教程和步骤:http: ...

  8. multi-mechanize

    1. 安装 万能的pip&easy_install(python27环境) pip install multi-mechanize mechanize numpy matplotlib mec ...

  9. Python的ipython的安装

    IPython是Python 的原生交互式 shell 的增强版,可以完成许多不同寻常的任务,比如帮助实现并行化计算:主要使用它提供的交互性帮助,比如代码着色.改进了的命令行回调.制表符完成.宏功能以 ...

  10. C#:数据库操作(待补充)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...