当前位置: 首页 > news >正文

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

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

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

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


        这是一个BUG。

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

        定义了几个同名函数:

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)

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

        调用的时候这样用:

table.SetColFormInput2(table.AddCol("dataType"), 16, "float uint boolean string ushort");

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

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

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


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

(这里是结束)

http://www.lryc.cn/news/329528.html

相关文章:

  • C++第十四弹---模板初阶
  • C++--内联函数
  • java数组与集合框架(一) -- 数据结构,数组
  • React 应用实现监控可观测性最佳实践
  • 批处理(Batch)把Excel文件xls格式和xlsx格式进行互换
  • Adobe ColdFusion 任意文件读取漏洞复现(CVE-2024-20767)
  • 搜索与图论——Floyd算法求最短路
  • 春招冲刺百题计划--矩阵篇
  • LLM大语言模型(八):ChatGLM3-6B使用的tokenizer模型BAAI/bge-large-zh-v1.5
  • MySQL中的三种日志
  • Codeforces Round 932 (Div. 2)(A,B,C,D)
  • 初识C++ · 入门(2)
  • 【opencv】教程代码 —ShapeDescriptors
  • 2024-03-28 Java8之Collectors类
  • 第116讲:使用Mycat-eye管理Mycat数据库服务
  • XR虚拟直播间,引领创新风潮,打破直播局限!
  • unity双层滑动实现
  • 浅谈AI技术创业有哪些机会?
  • 大数据-TXT文本重复行计数工具
  • 【无标题】331
  • MIT最新研究成果 机器人能够从错误中纠偏 无需编程介入和重复演示
  • C语言—指针数组
  • OpenCV图像二值化
  • java中的抽象类
  • 代码随想录算法训练营第二十天| 654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树
  • 2014年认证杯SPSSPRO杯数学建模A题(第二阶段)轮胎的花纹全过程文档及程序
  • C#全新一代医院手术麻醉系统围术期全流程源码
  • Python 神器:一键下载 M3U8 并转换为 MP4
  • vue3全局控制Element plus所有组件的文字大小
  • 区间预测 | Matlab实现带有置信区间的BP神经网络时间序列未来趋势预测