游戏开发之函数的重载(C++基础)

一、基本使用

  1. C中的函数不可以进行重载,C++中的可以。
  2. 函数重载是在同名函数的情况下发生的。
  3. 重载的条件:
    同一个作用域;
    参数个数不同;
    参数类型不同;
    参数顺序不同;
  4. 返回值类型不同不能作为重载条件。
  5. 使用函数重载时,必须手动转化为需要的类型,不会再有隐式转换。

TIPS:
不要过分依赖函数重载。
不要使用函数重载实现复杂的功能。

void F(int) { printf("F int\n"); }
void F(int,int) { printf("F int int\n"); }
void F(int,int,int) { printf("F int int int\n"); }void F(double) { printf("F double\n"); }
void F(double, double) { printf("F double double\n"); }void F(int, double) { printf("F int double\n"); }
void F(double, int) { printf("F double int\n"); }int main()
{F(1);F(1, 2);F(1, 2, 3);F(1.0);F(1.0, 2.0);F(1, 2.0);F(2.0, 1);F(2, 1.0f);return 0;
}

二、编译器函数重载的原理

使用 dumpbin /EXPORTS 工具

//_declspec(dllexport):这个是windows下,导出函数给其他程序使用的关键字。
_declspec(dllexport) void F(int) { printf("F int\n"); }
_declspec(dllexport) void F(int,int) { printf("F int int\n"); }
_declspec(dllexport) void F(int,int,int) { printf("F int int int\n"); }_declspec(dllexport) void F(double) { printf("F double\n"); }
_declspec(dllexport) void F(double, double) { printf("F double double\n"); }_declspec(dllexport) void F(int, double) { printf("F int double\n"); }
_declspec(dllexport) void F(double, int) { printf("F double int\n"); }// 使用标准的C风格函数
extern "C" {_declspec(dllexport) void func11() { std::cout << "He12312312" << std::endl; }_declspec(dllexport) void func22(int b) { std::cout << "He12312312" << std::endl; }_declspec(dllexport) void func33(int b, float a) { std::cout << "He12312312" << std::endl; }_declspec(dllexport) void func44(int b, float a, char c) { std::cout << "He12312312" << std::endl; }
}

1.首先运行程序,生成exe文件。

2.打开vs 2017的开发人员命令提示符


3.输入以下命令


TIPS:因为博主在同一个项目内的另一个cpp文件中同样有一个同版副本,所以才有22个只需要看红色框框圈出的即可。

游戏开发之函数的重载(C++基础)相关推荐

  1. DX11 游戏开发笔记 (二) DX11 基础框架 上

    必须吐槽csdn的排版,真的是对不起它的名字! 抱了很大的决心,才决定写下这篇博文,笔者大三从其它专业转行,学习c c++也就一年多,因为入了游戏这坑, 故选择在游戏引擎这块泥泞的道路上前进,且行且开 ...

  2. 【Java 2D游戏开发(一)】GUI基础 / 显示出一个窗口

    显示窗口 游戏里所有的绘制操作都要在窗口的基础上进行,可以用JFrame来新建一个窗口 JFrame window = new JFrame();//新建窗口 window.setVisible(tr ...

  3. 【HTML5 Canvas游戏开发】笔记(一) 概述和基础讲解

    本系列文章由Shin-Knight编写,转载需注明出处. 作者:Shin-Knight 邮箱:shinknight@163.com 文章链接:http://www.cnblogs.com/knight ...

  4. cocos creator 3.7微信小游戏开发云函数和云托管部署

    cocos creator开发跨平台游戏能力不错,可以一次开发适用于多个平台,如andriod,ios原生,网页,各类小程序等等.就实际情况而言,能够跨1-2个平台已经不容易了,这是因为在跨平台开发中 ...

  5. DX11 游戏开发笔记 (二) DX11 基础框架三角形 下

                             顶点缓存之几何三角 老鸟:怎么样,昨天游戏玩的开心吗,有没有秀出你快乐刀妹的操作. 小白:哇,那当然的,最开心的一把我现在还记忆犹新,我们前期劣势,有 ...

  6. Laya Air游戏开发模式之传统MVC模式(基础篇)

    没错这次要介绍的开发模式就是开发界中的万油精

  7. Unity3D游戏开发初探—2.初步了解3D模型基础

    一.什么是3D模型? 1.1 3D模型概述 简而言之,3D模型就是三维的.立体的模型,D是英文Dimensions的缩写. 3D模型也可以说是用3Ds MAX建造的立体模型,包括各种建筑.人物.植被. ...

  8. unity 3d游戏开发_使用Unity 5开发3D游戏

    unity 3d游戏开发 If there's one thing cooler than playing games, it's building games. 如果有比玩游戏更酷的一件事,那就是构 ...

  9. 一篇关于魅族M82D游戏开发的帖子,详细介绍了M8上DDraw的使用,DDraw同时适用于WinCE系统

    原文地址::http://www.j2megame.com/html/xwzx/ty/512.html 相关网帖 1.M8SDK教程-游戏开发心得(一): 游戏程序框架----http://bbs.m ...

  10. M8SDK教程-游戏开发心得(三):DDraw进阶教程-贴图,Alpha和Sprite动画,RPG游戏雏形

    M8SDK教程-游戏开发心得(三):DDraw进阶教程-贴图,Alpha和Sprite动画,RPG游戏雏形 引用: M8 SDK教程- 游戏开发心得(一): 游戏程序框架 http://bbs.mei ...

最新文章

  1. iOS UITableView的方法解析
  2. c语言进程调度报告,进程调度(C语言实现).doc
  3. MongoDB升级导致启动失败
  4. Asp.NET Core 一个接口的多个实现如何通过 DI 注册?
  5. c语言 数组循环移动,如何将一个数组的元素循环左移?
  6. 阿里云喻义:十年牧码,从码农走向工程师的进化之路
  7. Powershell实例小结(服务管理)
  8. 物联网金融:下一个风口?
  9. Sql Server 2008开发版(Developer Edition)过期升级企业版(Enterprise Edition)失败后安装学习版...
  10. 查找销售模块中装箱单提单主提单当前的编号
  11. python解一元三次方程_利用Python的sympy包求解一元三次方程示例
  12. cpuz测试分数天梯图_PC电脑桌面CPU天梯图2020 单路CPU性能排名
  13. 淘宝taobao.com步3721后尘晋升新网骚
  14. 学习笔记:python游戏脚本1.0版本,实现自动点击、识图、识别价格、弹窗提示低于预期价格可以购买
  15. 消息队列8:RabbitMq的QOS实验
  16. 《Adobe Illustrator CS6中文版经典教程(彩色版)》—第1课1.19节查找如何使用Illustrator的资源...
  17. 关于SimpleDateFormat格式化无法精确到微妙、纳秒的处理
  18. 随机车牌号python
  19. 海信电视power android,海信智能电视投屏之安卓手机miracast投屏教程
  20. 关于“服务器限制无法上传那么大的附件 ”的解决方法

热门文章

  1. [ACL18]直接到树:基于神经句法距离的成分句法分析
  2. 致Android开发者:APP 瘦身经验总结
  3. 3.8 Spark 用户日志分析
  4. POJ读书笔记2.1 —— 鸡兔同笼
  5. python中输入汉字_python汉字输入
  6. php 字符串循环替换字符串,php – 替换字符串中的重复字符串
  7. Flutter进阶第2篇:Dio库实现网络请求以及动态渲染数据
  8. L1-017 到底有多二 (15 分) — 团体程序设计天梯赛
  9. 创建设备文件节点_使用device_create实例分析
  10. 深入理解JVM-java内存区域与内存溢出异常