提问人:Calmest205PL 提问时间:8/29/2021 更新时间:8/30/2021 访问量:55
如何创建和调用与其他函数同名的函数?
How to create and call function with same name as other function?
问:
我正在开发自己的库,我想创建函数 max()。我知道这样的函数存在于 C++ 中,它不在命名空间 std 中,所以使用命名空间 std 擦除;无济于事。我在我的命名空间中创建这个函数,如下所示:
namespace ml
{
template<typename T>T max(T cntr, int size)//I'm getting errors here
{
sort(cntr,0,size-1);//my function which just sorts elements, it's working fine
return cntr[size-1];
}
}
这是我的主要功能:
#include <iostream>
#include <ctime>
#include "mylib.hpp"
int main()
{
srand(time(NULL));
int* arr, n;
std::cin>>n;
arr = new int [n];
for(int i = 0; i < n; i++)
{
arr[i] = rand()%100;
}
int maximum = ml::max(arr,n);//I'm getting errors here
std::cout<<maximum<<'\n';
return 0;
}
如果我这样做了,对不起语法错误。
答:
0赞
Pete Becker
8/30/2021
#1
如果该函数的目的是搜索 C 样式的数组,则签名应为 。(注意 as 的类型 )这样,当它被 和 调用时,就会被推导出为 ,这就是正确的返回类型。template <typename T> T max(T* cntr, int size)
T*
cntr
int*
T
int
评论
max
std