You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C++中编写支持任意类型参数的打印函数(含双参数场景)

解决方案:用C++函数模板实现通用打印函数

完全可以实现,只需要借助C++的函数模板特性,仅修改printValues的参数声明部分即可。

修改后的函数参数及模板声明如下:

template<typename T1, typename T2>
void printValues(T1 val1, T2 val2)

完整的可运行代码:

#include <iostream>

using namespace std;

template<typename T1, typename T2>
void printValues(T1 val1, T2 val2)
{
    cout << val1 << " " << val2 << endl;
}

int main()
{
    printValues(10, 20);
    printValues(30, "Hello");
    printValues(2.5, 7.5);
    return 1;
}

原理说明

函数模板通过template<typename T1, typename T2>声明两个通用类型参数,编译器会根据每次调用printValues时传入的实际参数类型,自动推导T1和T2的具体类型,并生成对应类型的函数实例。比如:

  • 调用printValues(10, 20)时,生成处理两个int类型的函数版本
  • 调用printValues(30, "Hello")时,生成处理int和const char*类型的函数版本
  • 调用printValues(2.5, 7.5)时,生成处理两个double类型的函数版本

这样既满足了接受任意数据类型组合的需求,又没有修改原代码中除函数参数外的其他部分。

内容的提问来源于stack exchange,提问作者Bathrinath V

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 11:27:20