이 질문에 대해서는 이미 조사해 보았습니다.하지만 내 오류를 다루는 모든 질문은 클래스 및 기본 생성자와 관련이 있지만 내 코드에는 클래스가 들어있는 것처럼 보입니다. 그것은 주어진 배열의 원소의 수를 반환하는 간단한 size() 함수입니다. (나는 size() 함수가 내장되어 있다는 것을 알고있다.)술어 템플릿 함수로 여기에서 오류가 발생했습니다
처음에는 size() 함수가 이미 존재하여 size 함수가 이미 존재할 때 내 함수 이름 size()에 화가났다 고 생각했기 때문에 sise()로 변경했지만 여전히 같은 오류를 받았고 해결 방법을 모르고있었습니다. 그것.
코드 : 서로 각각의 통화 기능을 주석 처리되었지만
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]
의 같은 오류가 그대로 주석 기능에 대해 걱정하지 마십시오
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;
}
가) (주에서 호출 주어진. 무슨 일 이니?
) int 배열 []이 null로 끝나지 않으므로 크기 계산이 수행되지 않습니다. 컴파일 할 때에도 작동합니다. NULL은 포인터로 정의되고 int와 비교됩니다. –