gpt4 book ai didi

c++ - 在 C++ 中期望各种参数类型

转载 作者:行者123 更新时间:2023-11-27 22:55:51 26 4
gpt4 key购买 nike

我正在用 C++ 创建与 JavaScript 的 console.log 等效的东西,但我不确定如何让我的函数期望不同类型的参数。

在 JavaScript 中:

function print(arg)
{
if(typeof arg=="number") { ... }
if(typeof arg=="string") { ... }
}

当然,JavaScript 不关心你给一个函数什么,但 C++ 关心,所以我怎么能让它捕获任何(或者至少指定它接受的类型),以便稍后在函数本身中处理?

目前我所拥有的:

void print(string input)
{
cout << input << "\n";
}

最佳答案

您可以使用 function template 来完成此操作.

template <typename T>
void print(const T& output)
{
std::cout << output << "\n";
}

这将为您传递给它的每种类型创建一个 print 函数。

编辑:

如果您希望它也适用于数组,则可以从评论中添加

template<typename T, std::size_t N>
void print(T (&output)[N])
{
for (std::size_t i = 0; i < N; i++)
{
std::cout << output[i] << " ";
}
std::cout << "\n";
}

您可以在这个 Live Example 中看到所有这些一起工作

关于c++ - 在 C++ 中期望各种参数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33218932/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com