c++中如何让函数的形参是 double或者int,比如让下面例子里的形参也可以是int,这样不用写两个函数了

2025-03-28 12:48:04
推荐回答(2个)
回答1:

/*利用函数模板*/
#include 

template 
T *buildarray(T a[], T b);

int main()
{
    double a[10] = {0};
    double b = 0;
    int c[10] = {0};
    int d = 0; 
    buildarray(a, b); //调用实例;
    buildarray(c, d);  //调用实例;
    return 0;
}

template   //调用函数时,T可以是任何类型; 
T *buildarray(T a[], T b)  //函数模板; 
{
    int longs = sizeof(a);
    int i;
    T c[longs + 1];
    for(i = 0; i <= longs; i++)
    {
        c[i] = a[i];
    }
    c[++i] = b;
    
    return c;
}

回答2:

用模板。
template || is_same_v>>
T * buildarray(T a[], T b) {...}
以上为了省事按C++17标准写的
没学到模板的话,就先写两个函数吧。