我已经尝试研究过这个问题,但似乎每个处理我的错误的问题都与类及其默认构造函数有关,而我的代码不包含类。这是一个简单的 size() 函数,它返回给定数组中元素的数量。(我知道有一个内置的 size() 函数,这不是重点)。
起初我认为当 size() 函数已经存在时,我将函数命名为 size() 让我感到不安,所以我将我的函数改为 sise() 但我仍然收到相同的错误并且不知道如何解决它。
代码:
template<class T > int sise(T array[], int count){
if(array[count+1]== NULL){
return count+1;
}
else{
return sise(array,count+1);
}
}
template <class T> int sise(T array[]){
return sise(array , 0);
}
int main(){
int array[] = {1 , 7 , 5, 4, 6 ,2 , 3};
int len = sise<int>(array);
std::cout << len << std::endl;
//print<int>(array);
// shakersort<int>(array);
// print<int>(array);
return 0;
}
不用担心 main() 中被注释掉的函数调用,因为每个调用函数都被注释掉了,但是同样的错误
Shakersort.cpp: In function ‘int sise(T*, int) [with T = int]’:
Shakersort.cpp:60:24: instantiated from ‘int sise(T*) [with T = int]’
Shakersort.cpp:77:28: instantiated from here
Shakersort.cpp:51:3: warning: NULL used in arithmetic [-Wpointer-arith]
给出。到底是怎么回事?