为BUG编程:函数重载的烦恼 char *匹配bool而不是string

初级代码游戏的专栏介绍与文章目录-CSDN博客

我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。

这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。


这是一个BUG。

运行环境为linux x64 g++,Ubuntu18。

定义了几个同名函数:

cpp 复制代码
bool SetColFormInput(char const* colname, long size, bool _hidden = false)
bool SetColFormInput(long col, long size, bool _hidden = false)

bool SetColFormInput(long col, long size, string options, bool _hidden = false)

前两个是以前就有的,用起来没什么问题。第三个是新加的,在第二个基础上增加一个参数,因为带有默认值的必须放在最后嘛,所以新参数是倒数第二个。

调用的时候这样用:

cpp 复制代码
table.SetColFormInput2(table.AddCol("dataType"), 16, "float uint boolean string ushort");

第一个参数是long没什么问题,新增加的参数是字符串嘛,显然也没什么问题。

然而,程序调用的却是第二个函数,也就是说,bool比string更接近char const *啊!

没办法,只好把第三个函数改名解决。


不过话说回来,使用同名函数和参数默认值都是应该尽量避免的行为,虽然方便却会带来潜在的麻烦。比如这次。

(这里是结束)

相关推荐
调问开源问卷DWSurvey14 小时前
调问更新5.16~5.30:解锁Excel图片上传,修复多项高频体验Bug
bug
胡图图不糊涂^_^17 小时前
测试BUG篇
学习·bug·测试
搬石头的马农1 天前
从零配置Claude自动修Bug:6步打造全自动开发流程
java·人工智能·python·bug·ai编程
winlife_1 天前
让 AI 自动跑 PlayMode 回归测试:从 BUG 注入到自动判 FAIL 的完整闭环
人工智能·unity·bug·ai编程·mcp·回归测试·游戏测试
坚果的博客1 天前
Flutter OHOS SDK 版本目录校验 Bug 修复实战
flutter·bug
加强洁西卡1 天前
【Bug】解决vscode里ssh连接的虚拟机的codex的侧边栏打开只有logo没有登录或输入框的问题
bug
不懂的浪漫2 天前
Codex 更新后历史 Session 消失?我写了一个修复官方 Bug 的 Recovery Skill
bug·codex·skill
এ慕ོ冬℘゜2 天前
手写一款高兼容、零BUG图片预览组件|前端
前端·bug
hui函数3 天前
Python系列Bug修复|如何解决 pip install 报错 ModuleNotFoundError: No module named ‘pygame’ 问题
python·bug·pip
初圣魔门首席弟子3 天前
BUG-001: 相对导入超出顶级包范围导致程序启动失败
bug