是否可以使函数接受给定参数的多种数据类型?

2024-04-22

编写函数时,我必须声明输入和输出数据类型,如下所示:

int my_function (int argument) {}

是否可以声明我的函数接受 int、bool 或 char 类型的变量,并且可以输出这些数据类型?

//non working example
[int bool char] my_function ([int bool char] argument) {}

您的选择是

替代方案1

您可以使用模板

template <typename T> 
T myfunction( T t )
{
    return t + t;
}

替代方案2

普通函数重载

bool myfunction(bool b )
{
}

int myfunction(int i )
{
}

您为您期望的每个参数的每种类型提供不同的函数。您可以混合使用替代方案 1。编译器将为您选择合适的方案。

替代方案3

您可以使用联盟

union myunion
{ 
    int i;
    char c;
    bool b;
};

myunion my_function( myunion u ) 
{
}

替代方案 4

您可以使用多态性。对于 int 、 char 、 bool 可能有点大材小用,但对于更复杂的类类型很有用。

class BaseType
{
public:
    virtual BaseType*  myfunction() = 0;
    virtual ~BaseType() {}
};

class IntType : public BaseType
{
    int X;
    BaseType*  myfunction();
};

class BoolType  : public BaseType
{
    bool b;
    BaseType*  myfunction();
};

class CharType : public BaseType
{
    char c;
    BaseType*  myfunction();
};

BaseType*  myfunction(BaseType* b)
{
    //will do the right thing based on the type of b
    return b->myfunction();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以使函数接受给定参数的多种数据类型? 的相关文章

  • 通过 CMIS (dotCMIS) 连接到 SP2010:异常未经授权

    我正在使用 dotCMIS 并且想要简单连接到我的 SP2010 服务器 我尝试用 C 来做到这一点 如下所示http chemistry apache org dotnet getting started with dotcmis htm
  • 以文化中立的方式将字符串拆分为单词

    我提出了下面的方法 旨在将可变长度的文本拆分为单词数组 以进行进一步的全文索引处理 删除停止词 然后进行词干分析 结果似乎不错 但我想听听关于这种实现对于不同语言的文本的可靠性的意见 您会建议使用正则表达式来代替吗 请注意 我选择不使用 S
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现

随机推荐

  • Azure DevOps 多个自定义条件

    我在 azure devops 中有 2 个变量 Var1 A B C Var2 1 2 我需要在以下条件下运行任务 Var1 A B C Var2 1 2 Var1 A Var2 1 来自我只能看到更简单的自定义条件 like and s
  • 如何为 Azure 上的 Node.js Api 应用程序启用 BLOB 日志记录?

    我在 azure 上有一个 node js api 应用程序 我用bunyan将每个请求记录到sdtout 如何保存和读取日志文件 我启用了 BLOB 日志记录 我的存储中唯一显示的是一堆 csv 文件 这是一个例子 date level
  • 有没有办法在模拟器中将 ro.kernel.qemu 设置为 0?

    我替换了修改后的 build prop 其中包含ro kernel qemu 0用 yaffey 到 system img 但它不起作用 当模拟器重新启动时 ro kernel qemu 1仍然存在于输出中adb shell getprop
  • 如何使用WinAPI识别光驱中的光盘类型?

    我正在编写一个适用于音频 CD 和混合 CD 的应用程序 我想要一种方法来确定应用程序使用的驱动器中当前是否存在音频或混合类型 至少有一个音轨 光盘 到目前为止 我能够通过以下方式识别该驱动器是CD ROMGetDriveType 然而 事
  • Html:对于 Select multiple,仅提交一个值,但 .val() 返回两个值的数组

    渲染页面时 val 多重选择的设置为单个值 例如 my select box val 1 然后用户在多选框中选择附加值 提交表单时 仅提交新选择的值 而不提交先前设置的值 而在 Firefox 中调试时 val 函数返回一个包含两个值的数组
  • Vuejs $emit 不会在回调时触发

    在下面的代码中 export default props note methods remove NoteRepo remove this note err gt if err console log Should Fire this em
  • 源和目标具有不同的 EABI 版本

    我正在尝试使用 ARM 工具链编译 so 文件 但是我不断收到这个错误 错误 源对象的 EABI 版本为 0 但目标对象的 EABI 版本为 5 我无法更改工具链中的任何内容 因为我必须使用给定的工具链 我以前从未见过这个错误 我使用了这个
  • “私人套餐”是什么意思? [复制]

    这个问题在这里已经有答案了 请看示例 private package com xm aws import static com xml aws PcgTest test public class PackageTest public sta
  • 比较 timespec 值

    比较两个 timespec 值以查看哪个先发生的最佳方法是什么 下面这句话有什么问题吗 bool BThenA timespec a timespec b Returns true if b happened first b will be
  • 按索引列和行对 data.table 进行子集化

    我希望通过更改列的索引来递归地对数据表进行子集化z并且同时根据某些条件过滤行 in 基向量 dt lt setDT copy diamonds dt lt setDT data frame lapply dt as character st
  • Azure EventGrid Webhook 超时

    从文档中得知 webhook 的超时时间为 60 秒 如果是这样的话 那么我们是否期望开发人员进行异步操作 我的意思是 如果我想要作为 Webhook 的一部分完成的工作需要超过 60 秒怎么办 但是 如果我们将该操作设为异步 并且我想要作
  • 使用 Python 绑定在 Selenium 中发送键控制 + 单击

    我需要使用 Selenium 在新选项卡中打开链接 那么是否可以在 Selenium 中对元素执行 ctrl click 以在新选项卡中打开它 Use an ActionChain with key down按控制键 然后key up释放它
  • 使用 iPhone 作为热点时 TCP 连接无法正常工作

    我正在开发一个 iOS 应用程序 它通过 TCP 套接字连接到在 Android 上运行的服务器应用程序 为了找到第二个设备的 IP 我使用 UDP 请求并接收服务器的 IP 当我将它们连接到 Wi Fi 网络或使用 Android 设备作
  • 如何判断当前应用程序是否为中等信任

    我试图确保我的 ASP Net 库能够在中等信任下工作 然而 我遇到了问题 因为如果代码在中等信任度下运行 我需要禁用一些代码 如何从 C 确定当前应用程序是否为中等信任 具体来说 我正在尝试从 web config 读取 customEr
  • Angularjs JSONP 不工作

    我可能在这里遗漏了一些东西 但我无法使这个 JSONP 请求工作 这里是代码 var url http server callback JSON CALLBACK http jsonp url success function data c
  • AIRFLOW:在 jinja 模板中为 {{ds}} 使用 .replace() 或relativedelta()

    我的目标是根据气流宏变量 ds 返回上个月的第一天并使用它 例如在 Hive 操作符中 例如 对于 ds 2020 05 09 我预计返回 2020 04 01 我找到并尝试的解决方案是 SET hivevar LAST MONTH ds
  • 是否应该重构此 C# 代码以使用 Lazy 类?

    我有以下代码 可以在同一秒通过多个网络请求调用 因此 我不希望第二个以上请求访问数据库 而是等到第一个请求访问数据库 我应该重构它以使用Lazy
  • 如果在 Woocommerce 中购买了特定产品,则会向特定地址发送电子邮件通知

    我在我的 WordPress 网站中使用 woocommerce 插件 我想知道如何向特定地址电子邮件发送电子邮件通知 如果产品A由客户购买 在 Woocommerce 中购买特定产品时如何向特定地址发送电子邮件通知 当在订单项中找到特定定
  • 添加新字段或更改所有 Firestore 文档的结构

    考虑一个集合users 集合中的每个文档都有name and email作为字段 users uid1 name Alex Saveau email email protected cdn cgi l email protection ui
  • 是否可以使函数接受给定参数的多种数据类型?

    编写函数时 我必须声明输入和输出数据类型 如下所示 int my function int argument 是否可以声明我的函数接受 int bool 或 char 类型的变量 并且可以输出这些数据类型 non working examp